Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式-仅匹配unicode字母表而不匹配数字_Php_Regex_Validation_Unicode - Fatal编程技术网

Php 正则表达式-仅匹配unicode字母表而不匹配数字

Php 正则表达式-仅匹配unicode字母表而不匹配数字,php,regex,validation,unicode,Php,Regex,Validation,Unicode,我正在使用PHP,并试图编写一个正则表达式,它匹配任何语言中的任何字母表,但不匹配数字 我试过/\p{L}+/,但它也匹配unicode字母和数字。我在检查阿拉伯语和英语。英语数字不通过这是正常的,但阿拉伯语数字通过这是不正常的 是否还有另一个正则表达式只匹配任何语言中的字母表?正则表达式引擎需要知道目标字符串是unicode字符串(以避免解释错误)。为此,可以使用u修饰符,该修饰符具有两个功能: 它将经典的速记字符类,如\w\d扩展为unicode字符(而不仅仅是ascii字符) 它强制将字

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

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


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

正则表达式引擎需要知道目标字符串是unicode字符串(以避免解释错误)。为此,可以使用u修饰符,该修饰符具有两个功能:

  • 它将经典的速记字符类,如
    \w
    \d
    扩展为unicode字符(而不仅仅是ascii字符)
  • 它强制将字符串视为unicode字符串
因此您可以使用:
/\pL+/u


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

是否尝试添加锚定?你用u修饰语了吗?@casimirithippolyte你能详细解释一下你的意思吗?谢谢。类似这样的:
/\A\pL+\z/u
@casimirithippolyte谢谢它起作用了。我添加了
u
标志,它解决了这个问题。请将其作为答案发布,以便我可以接受。关于锚
\A
\z
是否需要?