<?php
$zz = '/[0-5]\w+/';
$string = '1C';
$string2 = '1C$';
if(preg_match($zz, $string, $matches)){
echo '匹配到了,结果为:';
var_dump($matches);
}else{
echo '没有匹配到';
}
?>
Q1:$zz = '/[0-5]\w+/'; 这个+号是干嘛用的,为什么后面有的例子里面没有?
Q2:$string输出结果是为什么是1C,不应该是“1”吗?
Q3:如果$string输出结果是是1C,那$string1输出不应该是“1C$”吗?
[0-5] 可以匹配 0-5中的任意一个
w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。$ 不在范围
+ 标识一次或多次
因为$,+,等都是特殊符号,所以你要匹配这些字符时,必须在$pattern中明确指出要匹配哪个特殊符号(用反斜杠转移),
比如你要匹配$string2中的$匹配出来,只需要将$zz = '/[0-5]w+/';改为$zz = '/[0-5]w+$/';即可
Q1,+表示匹配前面的原子出现1次或多次
Q2,参见Q1,+表示前面的w(字符)出现1次或多次,所以1后面的C也会被匹配
Q3,$,+,-等符号都是特殊的符号,忘记在哪看过一篇博客,w不能匹配这些特殊的符号,你可以试一下把$改成其他字母,就能匹配出来了,至于原因,有大牛路过的话,希望讲解一下