小编典典

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

all

我想知道如果我能得到一个正则表达式,它将匹配一个只有字母字符的字符串,而且仅此而已。


阅读 105

收藏
2022-07-16

共1个答案

小编典典

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

/^[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

在这里,\p{L}匹配来自任何语言的任何类型的字母

2022-07-16