我正在使用PHP,并试图编写一个正则表达式,匹配任何语言的任何字母,但不是数字。
我已尝试/\p{L}+/
但它也匹配unicode字母和数字。我正在检查阿拉伯语和英语。英语数字没有通过,这是正常的,但阿拉伯数字通过这是不正常的。
是否有另一个正则表达式只匹配任何语言的字母?
答案 0 :(得分:1)
正则表达式引擎需要知道目标字符串是一个unicode字符串(以避免解释错误)。要做到这一点,你可以使用u修饰符,它有两个函数:
\w
\d
等经典速记字符类扩展为unicode字符(而不仅仅是ascii字符)所以你可以使用:/\pL+/u
请注意,在您的特定情况下,不需要第一个行为,但您只能使用以下内容切换第二个行为:/(*UTF8)\pL+/
((*UTF8)
必须放在模式的最开头)