2009-10-28 4 views
2

Как я могу найти многократное появление одного и того же символа? что-то вроде:Соответствие множественному вхождению одного и того же символа с preg_match

$maxRepeat = 3; 

"pool" passes 

"poool" don't 

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

какие персонажи я должен бежать?

Знаете ли вы, что хорошая ссылка на preg_match regexp отдельно от одного на php.net?

ответ

4

используется quantifiers для этого

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 Улар выражений является почетной camel book. Но если у вас нет ни одного удобного, this site довольно хорошо.

+0

Я думаю, что он хочет, чтобы регулярное выражение, чтобы работать для любой строки, а не только бассейн и не только письма о повторив - как '$ строки =«aaaaany слова»;' – NickSoft

-1
/.{1,2}/   # 2 is limit, 1 to have at least one character 

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

+0

точки будет соответствовать любому символу, а не повторять один и тот же символ. Таким образом, «оо» будет соответствовать, но «ао» также будет соответствовать – NickSoft

1

нашел то, что мне нужно, это

если (preg_match ('/() \ 1 /.', $ Т)) возвращает истину;

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

if (preg_match ('/ (.) \ 1 \ 1 /', $ t)) return true;

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

и так далее

Смежные вопросы