我试着用几个小时在php中找到合适的正则表达式来匹配任何语言字母但是为了防止它允许空间
我试过这个
[^\p{L}]
这没关系,但它看起来像是允许空间
然后我试试这个
[^\w_-]
它仍然看起来它允许空间
任何人都可以帮忙吗?
答案 0 :(得分:4)
您需要指定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) "بالعالم"
}
}