IM匹配的信件,试图对几个小时找到PHP正确的正则表达式匹配任何语言的字母,但要防止它允许空间正则表达式所有语言PHP
我有尝试这个
[^\p{L}]
这是确定的,但它看起来像它允许空间
那我也试试这个
[^\w_-]
它仍然看起来它允许空间
任何人都可以帮忙吗?
IM匹配的信件,试图对几个小时找到PHP正确的正则表达式匹配任何语言的字母,但要防止它允许空间正则表达式所有语言PHP
我有尝试这个
[^\p{L}]
这是确定的,但它看起来像它允许空间
那我也试试这个
[^\w_-]
它仍然看起来它允许空间
任何人都可以帮忙吗?
您需要指定Unicode修饰符u
才能获得Unicode character properties in PCRE。
例如...
$pattern = "/([\p{L}]+)/u";
$string = "你好,世界!Привет мир! !مرحبا بالعالم";
if (preg_match_all($pattern, $string, $match)) {
var_dump($match);
}
给了我们......
array(2) {
[0]=>
array(6) {
[0]=>
string(6) "你好"
[1]=>
string(6) "世界"
[2]=>
string(12) "Привет"
[3]=>
string(6) "мир"
[4]=>
string(10) "مرحبا"
[5]=>
string(14) "بالعالم"
}
[1]=>
array(6) {
[0]=>
string(6) "你好"
[1]=>
string(6) "世界"
[2]=>
string(12) "Привет"
[3]=>
string(6) "мир"
[4]=>
string(10) "مرحبا"
[5]=>
string(14) "بالعالم"
}
}
嗨,是的,你的工作,但这仍然允许我不想让这是我卡住的地方 – Mireille28
我不明白你的意思是“*允许空间*”。正如您可以清楚地看到的那样,在上面的示例中所示的捕获模式中没有空格。 – Sherif
作为例子,我希望我的用户能够使用所有语言注册,但是当我使用/([\ p {L}] +)/ u时,如果用户在用户名中指定了空格,它仍然会通过验证我希望在最终允许所有字符,但防止用户把空间放在 – Mireille28
喜@ mireille28和感谢要求你的问题在计算器上。我只是想为您提供一些有用的未来技巧。你应该永远记住提供你所尝试的输入和你得到的结果,你不希望在你的问题中得到答案,以便让人们知道你出错的地方。请回顾[如何提问](http://stackoverflow.com/help/how-to-ask)部分以获得更好的答案。 – Sherif
谢谢谢里夫im仍然有点混淆与此网站将尽力改善我的问题,在未来的感谢。 – Mireille28