$zz = '/[0-5]\w+/'; 这个+号是干嘛用的,为什么后面有的例子里面没有?
益伦
益伦 2017-10-21 12:04:43
0
3
1580

<?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$”吗?

益伦
益伦

全部回复(3)
路过

[0-5]  可以匹配 0-5中的任意一个

w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。$ 不在范围

+ 标识一次或多次

寻觅 beyond

因为$,+,等都是特殊符号,所以你要匹配这些字符时,必须在$pattern中明确指出要匹配哪个特殊符号(用反斜杠转移),

比如你要匹配$string2中的$匹配出来,只需要将$zz = '/[0-5]w+/';改为$zz = '/[0-5]w+$/';即可

寻觅 beyond

Q1,+表示匹配前面的原子出现1次或多次

Q2,参见Q1,+表示前面的w(字符)出现1次或多次,所以1后面的C也会被匹配

Q3,$,+,-等符号都是特殊的符号,忘记在哪看过一篇博客,w不能匹配这些特殊的符号,你可以试一下把$改成其他字母,就能匹配出来了,至于原因,有大牛路过的话,希望讲解一下

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板