php限制正则表达式与括号匹配不起作用

时间:2011-07-24 21:09:41

标签: php regex

return preg_match('/^([\d\p{Hebrew}]*\p{Hebrew}[\d\p{Hebrew}]*){1,64}$/iu', $str);

尝试上面的代码时,函数会返回true到大于64的字符串。 这有什么不对?

2 个答案:

答案 0 :(得分:0)

preg_match('/^([\d\p{Hebrew}]*\p{Hebrew}[\d\p{Hebrew}]*){1,64}$/iu', $str, $matches);
return $matches;

仅在找到字符串时返回,您必须填写第三个参数($matches)并将其返回。

答案 1 :(得分:0)

我不确定你的表达方式有什么问题(我可以用ascii字符重现它),但这是有效的

 /^(?=.{1,64}$)([\d\p{Hebrew}]*\p{Hebrew}[\d\p{Hebrew}]*)$/

删除末尾的长度检查。

在开头添加(?=.{1,64}$)。这是一个积极的展望,只是检查整个字符串是否在1到64个字符之间。如果是,则检查模式,如果结果不是False

See here on Regexr