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

我想知道是否可以得到一个仅包含字母字符的正则表达式匹配的字符串



慕勒3428872
浏览 1175回答 3
3回答

UYOU

您可以使用以下两个变体中的任何一个:/^[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

猛跑小猪

如果您需要包含非ASCII字母字符,并且您的正则表达式支持Unicode,则\A\pL+\z将是正确的正则表达式。一些正则表达式引擎不支持此Unicode语法,但允许\w字母数字速记也可以匹配非ASCII字符。在这种情况下,可以通过减去以下数字和下划线来获得所有字母\w:\A[^\W\d_]+\z\A在字符串的开头,字符串\z的末尾匹配(^并且$在某些语言(例如Ruby)中,或者在设置了某些正则表达式选项的情况下,也匹配在行的开头/结尾)。

眼眸繁星

这将匹配一个或多个字母字符:/^[a-z]+$/您可以使用以下命令使其不区分大小写:/^[a-z]+$/i要么:/^[a-zA-Z]+$/
打开App,查看更多内容
随时随地看视频慕课网APP