我不熟悉正則表達式。有人能告訴我這個正則表達式試圖做什麼?它返回布爾值還是數組?這是什麼正則表達式或preg_match檢查
$res = preg_match('#^[A-Z]{1}([0-9]{1,3})?((\.[0-9]{1,3}){0,2})?$#i', $value);
我不熟悉正則表達式。有人能告訴我這個正則表達式試圖做什麼?它返回布爾值還是數組?這是什麼正則表達式或preg_match檢查
$res = preg_match('#^[A-Z]{1}([0-9]{1,3})?((\.[0-9]{1,3}){0,2})?$#i', $value);
甲擊穿...
^[A-Z]{1}
- 從行的開頭,匹配從AZ一個字符... [A-Z]
([0-9]{1,3})?
- 亞組\ 1 - 匹配一個空間,則號碼[0-9]
1-3位數字{1,3}
,?
使這一個可選。((\.[0-9]{1,3}){0,2})?$
- 亞組\ 3(嵌套在\ 2) - 匹配字面.
然後一個數字[0-9]
1-3位長{1,3}
,匹配此前一組的0-2 {0,2}
,和可選由於?
,所述$
指定這場比賽是在線的末尾完成的。
i
- 結束正則表達式,設置忽略大小寫。這意味着,例如第一個[A-Z]
可能是[a-z]
而不會對比賽進行任何更改。
幾個可能的樣本:
B 472.983.421 (\1 = " 472" \2 = ".983.421")
A (\1 = "" \2 = "")
C 18.1.1 (\1 = " 18" \2 = ".1.1")
D 0.0.0 (\1 = " 0" \2 = ".0.0")
d 0.0.0 (\1 = " 0" \2 = ".0.0") # works due to the #i option.
等。
preg_match
總是返回一個int(如果匹配則返回1,否則返回0)。如果你想要一個數組,它會接受一個引用的thrid參數,這個參數將被結果填充。匹配字符串
的
#開始^與
開始[A-Z] {1}與一個大寫字母開頭
([0-9] {1,3})?可能後跟一個空格和3位數字
((。[0-9] {1,3}){0,2})?接着可能點的圖案,然後1-3位爲零,一或兩次
$用(即以前的搜索性判據結束匹配字符串
我不區分大小寫
的#後沒有結束
所以它試圖匹配一個IP地址或什麼? – samquo 2011-01-26 23:08:40