這是一個比賽:添加錨點時,爲什麼這個正則表達式失敗?
preg_match('/[a-bA-B0-9]+/', 'username')
但是,這並不:
preg_match('/^[a-bA-B0-9]+$/', 'username')
這是爲什麼?
這是一個比賽:添加錨點時,爲什麼這個正則表達式失敗?
preg_match('/[a-bA-B0-9]+/', 'username')
但是,這並不:
preg_match('/^[a-bA-B0-9]+$/', 'username')
這是爲什麼?
你是在測試實際文字'username'
?
/[a-bA-B0-9]+/
會測試a中是否存在a,b,A,B,0,1,2,3,4,5,6,7,8,9 中的任何字符串。所以它會匹配abBa854Abba32
,它將匹配sjfsgfafnvesv
。
/^[a-bA-B0-9]+$/
將測試enitre字符串由a,b,A,B,0,1,2,3,4,5,6,7,8,9組成。所以它會匹配abBa854Abba32
,它不會匹配sjfsgfafnvesv
。
也許你的意思是/^[a-zA-Z0-9]+$/
。
第二個不匹配,因爲你告訴正則表達式匹配開始的序列與字符類中的其中一個項目。你的字符串的第一個字母是「u」,你的角色類[a-bA-B0-9]中沒有「u」。
你是絕對正確的。但是爲什麼它在第一個例子中沒有失敗呢? D: – 2012-04-13 02:39:33
因爲''用戶名'包含'a'。 – 2012-04-13 02:42:06
我真的需要一些正則表達式練習。感謝你們 – 2012-04-13 02:44:10