<?php
$zz = '/[0-5]w+/';
$string = '1C';
$string2 = '1C$';
if(preg_match($zz, $string, $matches)){
echo 'übereinstimmend, das Ergebnis ist:';
var_dump($matches);
}else{
echo 'keine Übereinstimmung Gehen Sie zu ';
}
?>
Q1:$zz = '/[0-5]w+/'; Warum wird es später in einigen Beispielen nicht verwendet? ?
F2: Warum ist das $string-Ausgabeergebnis 1C, sollte es nicht „1“ sein?
F3: Wenn das Ausgabeergebnis von $string 1C ist, sollte das Ausgabeergebnis von $string1 dann nicht „1C$“ sein?
[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不能匹配这些特殊的符号,你可以试一下把$改成其他字母,就能匹配出来了,至于原因,有大牛路过的话,希望讲解一下