Php 正则表达式-仅匹配unicode字母表而不匹配数字
我正在使用PHP,并试图编写一个正则表达式,它匹配任何语言中的任何字母表,但不匹配数字 我试过Php 正则表达式-仅匹配unicode字母表而不匹配数字,php,regex,validation,unicode,Php,Regex,Validation,Unicode,我正在使用PHP,并试图编写一个正则表达式,它匹配任何语言中的任何字母表,但不匹配数字 我试过/\p{L}+/,但它也匹配unicode字母和数字。我在检查阿拉伯语和英语。英语数字不通过这是正常的,但阿拉伯语数字通过这是不正常的 是否还有另一个正则表达式只匹配任何语言中的字母表?正则表达式引擎需要知道目标字符串是unicode字符串(以避免解释错误)。为此,可以使用u修饰符,该修饰符具有两个功能: 它将经典的速记字符类,如\w\d扩展为unicode字符(而不仅仅是ascii字符) 它强制将字
/\p{L}+/
,但它也匹配unicode字母和数字。我在检查阿拉伯语和英语。英语数字不通过这是正常的,但阿拉伯语数字通过这是不正常的
是否还有另一个正则表达式只匹配任何语言中的字母表?正则表达式引擎需要知道目标字符串是unicode字符串(以避免解释错误)。为此,可以使用u修饰符,该修饰符具有两个功能:
- 它将经典的速记字符类,如
\w
扩展为unicode字符(而不仅仅是ascii字符)\d
- 它强制将字符串视为unicode字符串
/\pL+/u
请注意,在您的特定情况下,不需要第一个行为,但您只能使用以下命令打开第二个行为:
/(*UTF8)\pL+/
((*UTF8)
必须放在模式的最开始处)是否尝试添加锚定?你用u修饰语了吗?@casimirithippolyte你能详细解释一下你的意思吗?谢谢。类似这样的:/\A\pL+\z/u
@casimirithippolyte谢谢它起作用了。我添加了u
标志,它解决了这个问题。请将其作为答案发布,以便我可以接受。关于锚\A
和\z
是否需要?