anu*_*ava 163
您可以使用以下两种变体中的任何一种:
/^[A-Z]+$/i
/^[A-Za-z]+$/
Run Code Online (Sandbox Code Playgroud)
匹配ASCII字母表的输入字符串.
[A-Za-z] 将匹配所有字母(小写和大写).^并$确保除了这些字母表之外什么也不会匹配.码:
preg_match('/^[A-Z]+$/i', "abcAbc^Xyz", $m);
var_dump($m);
Run Code Online (Sandbox Code Playgroud)
输出:
array(0) {
}
Run Code Online (Sandbox Code Playgroud)
测试用例是他想匹配OP的评论只有当不存在输入1个或多个字母.正如您在测试用例中看到的那样匹配失败,因为^输入字符串中存在abcAbc^Xyz.
注意:请注意,上述答案仅与ASCII字母匹配且与Unicode字符不匹配.如果你想匹配unicode字母,那么使用:
/^\p{L}+$/u
Run Code Online (Sandbox Code Playgroud)
Tim*_*ker 49
如果您需要包含非ASCII字母字符,并且您的正则表达式支持Unicode,那么
\A\pL+\z
Run Code Online (Sandbox Code Playgroud)
将是正确的正则表达式.
某些正则表达式引擎不支持此Unicode语法,但允许使用\w字母数字缩写来匹配非ASCII字符.在这种情况下,您可以通过减去数字和下划线来获得所有字母顺序,\w如下所示:
\A[^\W\d_]+\z
Run Code Online (Sandbox Code Playgroud)
\A在字符串的开头匹配,在字符串\z的末尾匹配(^并且$在某些语言(如Ruby)中的行的开头/结尾处匹配,或者如果设置了某些正则表达式选项).
ste*_*rie 21
这将匹配一个或多个字母字符:
/^[a-z]+$/
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方法使其不区分大小写:
/^[a-z]+$/i
Run Code Online (Sandbox Code Playgroud)
要么:
/^[a-zA-Z]+$/
Run Code Online (Sandbox Code Playgroud)
jsh*_*kol 13
在Ruby和支持表达式中支持POSIX字符类的其他语言中,您可以简单地执行以下操作:
/\A[[:alpha:]]+\z/i
Run Code Online (Sandbox Code Playgroud)
这将匹配所有Unicode字母语言中的alpha-chars.十分简单.
更多信息:http : //en.wikipedia.org/wiki/Regular_expression#Character_classes http://ruby-doc.org/core-2.0/Regexp.html