2011-06-27 59 views
4

我想要構建preg_match的模式,它將匹配長度爲1 - 40個字符的任何字符串。我發現這一點:任何具有特定長度的字符串的正則表達式模式

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

但與一個我收到此錯誤信息:

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

什麼建議嗎?

+0

這不是你應該使用正則表達式的東西。 –

回答

10

/^.{1,40}$/應匹配長度爲1到40個字符的任何字符串。

它所做的是它需要.,它匹配所有內容,並重復它1到40次({1,40})。 ^$是字符串開頭和結尾的錨點。

7

如果你不在乎字符是什麼,你不需要正則表達式。使用strlen測試一個字符串的長度:

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

} 

這將是遠遠比啓動了PCRE引擎更快。


附錄:如果你的字符串可能包含多字節字符(例如é),你應該使用mb_strlen,這需要這些字符考慮進去。

+1

非常好的一點。 +1 –

相關問題