我不熟悉正则表达式。有人能告诉我这个正则表达式试图做什么?它返回布尔值还是数组?这是什么正则表达式或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