正则表达式的无效匹配('\pL' 在字符 class 中不起作用)
Invalid match for regex ('\pL' does not work within a character class)
为什么 PHP return 当前代码为 0?我只想验证用户名并允许传递所有可用的字母符号(包括所有字符,如 śćę......)。我做错了什么?
$var = 'cz -ęsc';
var_dump(preg_match('/^[\pL -]{1,35}$/', $var)); // int(0)
您需要通过设置 u
标志为您的正则表达式启用 Unicode,即:
$var = 'cz -ęsc';
var_dump(preg_match('/^[\pL -]{1,35}$/u', $var)); // int(1)
有关详细信息,请参阅文档中的 u (PCRE_UTF8)
部分:http://php.net/manual/en/reference.pcre.pattern.modifiers.php
为什么 PHP return 当前代码为 0?我只想验证用户名并允许传递所有可用的字母符号(包括所有字符,如 śćę......)。我做错了什么?
$var = 'cz -ęsc';
var_dump(preg_match('/^[\pL -]{1,35}$/', $var)); // int(0)
您需要通过设置 u
标志为您的正则表达式启用 Unicode,即:
$var = 'cz -ęsc';
var_dump(preg_match('/^[\pL -]{1,35}$/u', $var)); // int(1)
有关详细信息,请参阅文档中的 u (PCRE_UTF8)
部分:http://php.net/manual/en/reference.pcre.pattern.modifiers.php