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

猛跑小豬
TA貢獻1858條經驗 獲得超8個贊
如果您需要包含非ASCII字母字符,并且您的正則表達式支持Unicode,則
\A\pL+\z
將是正確的正則表達式。
一些正則表達式引擎不支持此Unicode語法,但允許\w字母數字速記也可以匹配非ASCII字符。在這種情況下,可以通過減去以下數字和下劃線來獲得所有字母\w:
\A[^\W\d_]+\z
\A在字符串的開頭,字符串\z的末尾匹配(^并且$在某些語言(例如Ruby)中,或者在設置了某些正則表達式選項的情況下,也匹配在行的開頭/結尾)。
- 3 回答
- 0 關注
- 1303 瀏覽
添加回答
舉報
0/150
提交
取消