2011-01-26 47 views

回答

1
  • 在搜索字符串的開頭從AZ一個字符:依次被1-3位^ [AZ] {1}
  • 空間,可能不包括(在端部): ([0-9] {1,3})? (([。[0-9] {1,3}){0,2})?可能不包含:
  • 後跟一個點和1-3位(重複0-2次)
4

甲擊穿...

  • ^[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. 

等。

+0

所以它試圖匹配一個IP地址或什麼? – samquo 2011-01-26 23:08:40

1

preg_match總是返回一個int(如果匹配則返回1,否則返回0)。如果你想要一個數組,它會接受一個引用的thrid參數,這個參數將被結果填充。匹配字符串

1

#開始^與

開始[A-Z] {1}與一個大寫字母開頭

([0-9] {1,3})?可能後跟一個空格和3位數字

((。[0-9] {1,3}){0,2})?接着可能點的圖案,然後1-3位爲零,一或兩次

$用(即以前的搜索性判據結束匹配字符串

我不區分大小寫

#後沒有結束