3

複数出現する同じ文字を見つけるにはどうすればよいですか? 何かのようなもの:

$maxRepeat = 3;

"pool" passes

"poool" don't

これはどの文字でも機能する必要があるため、.のような特殊文字をエスケープする必要があると思います。と \

どのキャラクターをエスケープする必要がありますか?

preg_matchphp.netのものとは別に、正規表現への良い参照を知っていますか?

4

3 に答える 3

4

これには量指定子を使用します

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

Perl の正規表現を学習するための私のお気に入りのリソースは、由緒正しきラクダの本です。しかし、手元にない場合、このサイトはかなり良い.

于 2009-10-28T15:21:33.543 に答える
1

見つかった、私が必要なのは

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

これは、$t = 'aa' に対して true を返します。// 任意の文字

if(preg_match('/(.)\1\1/', $t)) 真を返す;

これは、$t = 'aaa' に対して true を返します。// 任意の文字

等々

于 2009-10-28T15:23:22.820 に答える
-1
/.{1,2}/         # 2 is limit, 1 to have at least one character

$amxRepeate任意の文字が何度も繰り返されるため、int の場合は正規表現をフォーマットする必要があります。

于 2009-10-28T15:22:02.527 に答える