Сопоставление нескольких вхождений одного и того же символа с preg_match - PullRequest
2 голосов
/ 28 октября 2009

как мне найти несколько вхождений одного и того же персонажа? что-то вроде:

$maxRepeat = 3;

"pool" passes

"poool" don't

Мне нужно, чтобы это работало для любого персонажа, поэтому я думаю, мне придется избегать специальных символов, таких как. и \

от каких символов мне нужно убежать?

знаете ли вы какую-либо хорошую ссылку на preg_match регулярное выражение, кроме той, что на php.net?

Ответы [ 3 ]

4 голосов
/ 28 октября 2009

Вы используете квантификаторы для этого

preg_match("/p(o){1,3}ls/",$string);

Выдержки:

The following standard quantifiers are recognized:

1. * Match 0 or more times
2. + Match 1 or more times
3. ? Match 1 or 0 times
4. {n} Match exactly n times
5. {n,} Match at least n times
6. {n,m} Match at least n but not more than m times

Мой любимый ресурс для изучения P erl Reg ular Выражения - это проверенное время книга верблюдов . Но если у вас нет под рукой, этот сайт довольно хорош.

1 голос
/ 28 октября 2009

найдено, что мне нужно, это

if (preg_match ('/ (.) \ 1 /', $ t)) возвращает true;

это возвращает true для $ t = 'aa'; // любой символ

if (preg_match ('/ (.) \ 1 \ 1 /', $ t)) возвращает true;

это возвращает true для $ t = 'aaa'; // любой символ

и т. Д.

0 голосов
/ 28 октября 2009
/.{1,2}/         # 2 is limit, 1 to have at least one character

любой символ повторяется столько раз, что вам нужно будет отформатировать ваше регулярное выражение, если ваш $amxRepeate является целым числом.

...