[英]What does this regex or preg_match check
我对正则表达式并不熟悉。 有人可以告诉我这个正则表达式要做什么吗? 它返回布尔值还是数组?
$res = preg_match('#^[A-Z]{1}( [0-9]{1,3})?((\.[0-9]{1,3}){0,2})?$#i', $value);
崩溃...
^[AZ]{1}
-从行首开始,匹配AZ中的一个字符... [AZ]
( [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
-结束正则表达式,设置忽略大小写。 这意味着,例如第一个[AZ]
可以是[az]
而无需更改任何匹配项。
一些可能的示例:
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)。 如果需要数组,则该数组通过引用接受一个第三参数,该参数将填充结果。
#匹配字符串的开头
^开头为
[AZ] {1}以一个大写字母开头
([0-9] {1,3})? 可能后跟一个空格和3位数字
((。[0-9] {1,3}){0,2})? 可能后面跟着点的模式,然后是1-3位数零,一到两次
$以(以上一个搜索条件后为空)结尾
#匹配字符串结尾
我不区分大小写的搜索
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.