为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式仅匹配字母字符

正则表达式仅匹配字母字符

慕勒3428872 2019-10-17 10:46:40
我想知道是否可以得到一个仅包含字母字符的正则表达式匹配的字符串
查看完整描述

3 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

您可以使用以下两个变体中的任何一个:


/^[A-Z]+$/i

/^[A-Za-z]+$/

匹配ASCII字母的输入字符串。


[A-Za-z] 将匹配所有字母(小写和大写)。

^并$确保除了这些字母外,什么都不会匹配。

码:


preg_match('/^[A-Z]+$/i', "abcAbc^Xyz", $m);

var_dump($m);

输出:


array(0) {

}

测试用例用于OP的评论,即只有输入中存在1个或多个字母时,他才想匹配。如您所见,在测试用例中,匹配失败,因为^输入字符串中存在abcAbc^Xyz。


注意:请注意,以上答案仅匹配ASCII字母,不匹配Unicode字符。如果要匹配unicode字母,请使用:


/^\p{L}+$/u


查看完整回答
反对 回复 2019-10-17
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

如果您需要包含非ASCII字母字符,并且您的正则表达式支持Unicode,则


\A\pL+\z

将是正确的正则表达式。


一些正则表达式引擎不支持此Unicode语法,但允许\w字母数字速记也可以匹配非ASCII字符。在这种情况下,可以通过减去以下数字和下划线来获得所有字母\w:


\A[^\W\d_]+\z

\A在字符串的开头,字符串\z的末尾匹配(^并且$在某些语言(例如Ruby)中,或者在设置了某些正则表达式选项的情况下,也匹配在行的开头/结尾)。


查看完整回答
反对 回复 2019-10-17
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

这将匹配一个或多个字母字符:


/^[a-z]+$/

您可以使用以下命令使其不区分大小写:


/^[a-z]+$/i

要么:


/^[a-zA-Z]+$/


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 1250 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信