Heim > Backend-Entwicklung > PHP-Problem > Eine kurze Diskussion über den Unterschied zwischen den Funktionen preg_match und preg_match_all in PHP

Eine kurze Diskussion über den Unterschied zwischen den Funktionen preg_match und preg_match_all in PHP

醉折花枝作酒筹
Freigeben: 2023-03-08 21:56:02
Original
2561 Leute haben es durchsucht

In diesem Artikel werden die Funktionen preg_match und preg_match_all in regulären PHP-Ausdrücken analysiert und vorgestellt. Freunde in Not können darauf verweisen. Die Funktion

Eine kurze Diskussion über den Unterschied zwischen den Funktionen preg_match und preg_match_all in PHP

preg_match_all()

durchsucht die angegebene Zeichenfolge gemäß dem angegebenen regulären Ausdruck und extrahiert die Teile, die den Merkmalen entsprechen.

$pattern='/t(.*?)st/';
$str='tgvregbvst      test    tdst';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
Nach dem Login kopieren

Wir können sehen, dass das Ausgabeergebnis ist:

int(3) array(2) { [0]=> array(3) { [0]=> string(10) "tgvregbvst" [1]=> string(4) "test" [2]=> string(4) "tdst" } [1]=> array(3) { [0]=> string(7) "gvregbv" [1]=> string(1) "e" [2]=> string(1) "d" } }
Nach dem Login kopieren

Er listet alle auf, die die Bedingungen erfüllen, aber die Funktion preg_match() ist anders. Die Funktion

preg_match()

führt einen regulären Ausdrucksabgleich durch und gibt die Anzahl der Übereinstimmungen von pattern zurück. Sein Wert ist 0 (keine Übereinstimmung) oder 1, da preg_match() die Suche nach der ersten Übereinstimmung beendet. pattern的匹配次数。它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后将会停止搜索。

$pattern='/t(.*?)st/';
$str='tgvregbvst      test    tdst';
var_dump(preg_match($pattern,$str,$arr));
var_dump($arr);
Nach dem Login kopieren

我们可以看到输出结果是:

int(1) array(2) { [0]=> string(10) "tgvregbvst" [1]=> string(7) "gvregbv" }
Nach dem Login kopieren

相比上一个函数,这个函数输出结果少了很多,这正是他们的不同之处。

preg_match_all()不同于preg_match()函数,它会一直搜索subject直到到达结尾。如果发生错误preg_match()返回falserrreee

Wir können sehen, dass das Ausgabeergebnis ist:

rrreeeIm Vergleich zur vorherigen Funktion ist das Ausgabeergebnis dieser Funktion viel geringer. Das ist ihr Unterschied.

preg_match_all() unterscheidet sich von der Funktion preg_match(), die so lange nach subject sucht, bis sie das Ende erreicht. Wenn ein Fehler auftritt, gibt preg_match() false zurück. 🎜🎜Empfohlenes Lernen: „🎜PHP-Video-Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über den Unterschied zwischen den Funktionen preg_match und preg_match_all in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage