2011-06-27 8 views
4

長さが1〜40文字の任意の文字列に一致するpreg_matchのパターンを作成したいとします。私はこれを見つけた:特定の長さの任意の文字列の正規表現パターン

function.preg-match]: Unknown modifier '<' in .... 

どれ提案:

^[^<\x09]{1,40}\Z 

しかし、私はこのエラーメッセージを受け取ること1と

+0

これは正規表現を使うべきではありません。 –

答えて

10

/^.{1,40}$/は、1〜40文字の任意の文字列と一致する必要があります。

これは、すべてに一致する.が1から40回({1,40})繰り返されることです。 ^$は、文字列の先頭と末尾のアンカーです。

7

文字が何であるか気にしない場合は、正規表現は必要ありません。文字列の長さをテストするためにstrlenを使用します。

if ((strlen($yourString) <= 40) && (strlen($yourString) >= 1)) { 

} 

これはPCREエンジンを起動するよりもはるかに速くなります。


補遺:あなたの文字列にマルチバイト文字が含まれている可能性がある場合(例えばé)、あなたが考慮にこれらの文字を取るmb_strlenを使用する必要があります。

+1

非常に良い点。 +1 –

関連する問題