具有特定长度的任何字符串的正则表达式模式

时间:2011-06-27 15:09:49

标签: php regex preg-match

我想为preg_match构建模式,该模式将匹配长度为1 - 40个字符的任何字符串。我发现了这个:

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

但是有了那个,我收到了这个错误信息:

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

有什么建议吗?

2 个答案:

答案 0 :(得分:10)

/^.{1,40}$/应匹配任意长度为1到40个字符的字符串。

它的作用是使.与所有内容相匹配,并重复1到40次({1,40})。 ^$是字符串开头和结尾的锚点。

答案 1 :(得分:7)

如果您不关心字符是什么,则不需要正则表达式。使用strlen来测试字符串的长度:

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

}

这比启动PCRE引擎要快


附录:如果您的字符串可能包含多字节字符(例如 é ),则应使用mb_strlen,这会考虑这些字符。