<?php
header('Content-Type: text/html; charset=utf-8');
$pattern='/[^0-9A-Za-z_]/';
$string='! $@!#%$#^##';
if(preg_match($pattern, $string,$match)){
echo 'Übereinstimmung, das Ergebnis ist:';
var_dump($match);
}
else {
echo 'No match';
}
?>
Ausgabe: Übereinstimmung, das Ergebnis ist: array(1) { [0]=> string(1) "}
Ich verstehe nicht $ Es gibt viele Zeichenfolgen, die nicht im Bereich von [^0-9A-Za-z_] liegen. Warum wird nur ein „!“ ausgegeben?
preg_match()只匹配一次,如果匹配到符合条件的内容就立即返回,不再继续匹配了,即使后面还有符合条件的。
preg_match()只匹配一次,如果匹配到符合条件的内容就不再继续匹配,如果你要匹配所有符合条件的可以用preg_match_all($pattern,$string,$arr),$arr会保存匹配到的所有符合条件的内容