[英]preg_match is not validation roman character for Unicode regular expression
我有以下要求:
匹配所有Unicode字符。(不特定罗马字符)
最多字符数为255。
不接受数字字符。
我为此编写了以下代码和正则表达式。 它非常适合ASCII字符并满足上述所有要求,但是当我使用罗马字符时却失败了。
请让我知道我错了。
<?php
$text = "ăâáéíîó";
$pattern = "/^[p{L}p{M}*+]{1,255}$/";
$ret = preg_match($pattern,$text,$match);
echo "Return Value = $ret";
echo "<pre>";
print_r($match);
?>
输出:
Return Value = 0
Array
(
)
您需要添加以下修复程序:
\\
- \\p{L}
, \\p{M}
。 /u
修饰符。 采用
$pattern = "/^(?:\p{L}\p{M}*+){1,255}$/u";
参见PHP演示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.