php - 匹配来自所有语言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) "بالعالم"
  }
}

https://stackoverflow.com/questions/38938882/

相关文章:

r - 如何在 R 中获得 ping 响应

matlab - 是否有编写 matlab 文件开头注释的标准?

php - 匹配不同值的 RegEx BackReference

r - 计算从原点到R中每个时间点的梯形积分

arrays - 通过在元素之间包含零来对向量进行上采样

cordova - Swiper.js - 禁用触摸滑动但以编程方式滑动

c#-6.0 - 有没有办法将 C# 6 的字符串插值与多行字符串一起使用?

web-services - 基于操作的 URI 和基于资源的 URI 之间有什么区别?

java - 在露天。如何创建临时文件进行测试?

laravel - vagrant up 后,我对 Homestead.yaml 的更改未反射(re