我想知道如果我能得到一个正则表达式,它将匹配一个只有字母字符的字符串,而且仅此而已。
您可以使用以下两种变体中的任何一种:
/^[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。
abcAbc^Xyz
注意: 请注意,上面的答案 只匹配 ASCII 字母 ,不匹配 Unicode 字符。如果要匹配 Unicode 字母,请使用:
/^\p{L}+$/u
在这里,\p{L}匹配来自任何语言的任何类型的字母
\p{L}