我花了几个小时试图在 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) "بالعالم"
}
}
https://stackoverflow.com/questions/38938882/