2011-06-27 23 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 –

相关问题