标签: php regex preg-match
我想为preg_match构建模式,该模式将匹配长度为1 - 40个字符的任何字符串。我发现了这个:
^[^<\x09]{1,40}\Z
但是有了那个,我收到了这个错误信息:
function.preg-match]: Unknown modifier '<' in ....
有什么建议吗?
答案 0 :(得分:10)
/^.{1,40}$/应匹配任意长度为1到40个字符的字符串。
/^.{1,40}$/
它的作用是使.与所有内容相匹配,并重复1到40次({1,40})。 ^和$是字符串开头和结尾的锚点。
.
{1,40}
^
$
答案 1 :(得分:7)
如果您不关心字符是什么,则不需要正则表达式。使用strlen来测试字符串的长度:
strlen
if ((strlen($yourString) <= 40) && (strlen($yourString) >= 1)) { }
这比启动PCRE引擎要快远。
附录:如果您的字符串可能包含多字节字符(例如 é ),则应使用mb_strlen,这会考虑这些字符。
é
mb_strlen