Приднестровская поддержка XOOPS
Выше приводились шаблоны для отдельного символа или класса символов в строке. Показывались способы указать. произвольный символ, чтобы задать широкий спектр шаблонов в регулярных выражениях. Есть также специальные символы, позволяющие указать, сколько раз отдельный шаблон повторяется в строке.
Символ (*) указывает на то, что последовательность
встречается ноль или больше раз, а плюс (+) — как минимум один раз.
Два примера ниже с символами * и + очень похожи. Оба проверяют наличие буквенно-цифровых символов произвольной длины. Первое условие также соответствует пустой строке, потому что звездочка допускает ноль и больше совпадений [[:alnum:]]:
if (ereg("^[[:alnum:]]*$", $phrase)) ...
if (ereg("^[[:alnum:]]+$", $phrase)) ...
Нужно использовать круглые скобки, чтобы выделить последовательность искомых символов, которые нужно повторить. Например, условие ниже соответствует строке с чередующейся последовательностью букв и цифр:
if (ereg("^([[:alpha:]][[:digit:]])+$", $Sstring)) ...
Символ плюс указывает на то, что последовательность буква/цифра должна встречаться не менее одного раза. Чтобы задать фиксированное количество повторений, нужно указать номер в фигурных скобках. Можно задать одно или два числа через запятую для указания диапазона, как показывается в примере ниже:
if (ereg("^([[:alpha:]][[:digit:]])+{2,3}$", $Sstring)) ...
Это выражение соответствует четырем или шести символам с чередующимися буквами и цифрами. Но единичная комбинация буквы и цифры или более трех повторений не соответствуют этой комбинации.
Знак вопроса (?) указывает на то, что комбинация должна встретиться не больше одного раза. Его поведение аналогично действию комбинации {0,1}.
Отправитель | Нити |
---|
1 пользователь(ей) активно (1 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 1 далее... |