Regex-只匹配unicode字母表,不匹配数字


Regex - Match only unicode alphabet not numbers

我正在使用PHP,并试图编写一个正则表达式,该表达式可以匹配任何语言中的任何字母表,但不能匹配数字。

我试过/'p{L}+/,但它也匹配unicode字母和数字。我正在对照阿拉伯语和英语进行检查。英语数字不能通过,这是正常的,但阿拉伯数字通过,这不是正常的。

有没有另一个正则表达式只匹配任何语言中的字母?

正则表达式引擎需要知道目标字符串是unicode字符串(以避免解释错误)。要做到这一点,你可以使用u修饰符,它有两个功能:

  • 它将经典的简写字符类(如'w'd)扩展为unicode字符(而不仅仅是ascii字符)
  • 它强制将字符串视为unicode字符串

因此您可以使用:/'pL+/u

请注意,在您的特定情况下,不需要第一个行为,但您只能使用以下命令打开第二个行为:/(*UTF8)'pL+/(*UTF8)必须放在模式的最开始)