Aktueller Standort: Startseite> Neueste Artikel> Was ist der Unterschied zwischen Strristr und dem regulären Ausdruck (PREG_MATCH) in PHP?

Was ist der Unterschied zwischen Strristr und dem regulären Ausdruck (PREG_MATCH) in PHP?

gitbox 2025-06-22

1.. Strristr () Funktion

Strristr () ist eine integrierte String-Funktion in PHP. Es wird verwendet, um den Ort zu ermitteln, an dem eine Zeichenfolge zuerst in einer anderen Zeichenfolge erscheint und diesen Ort und seine nachfolgenden Teile zurückgibt. Strrist () ist unempfindlich, d. H. Es ignoriert die Fallunterschiede der Buchstaben.

Grammatik:

 <span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$before_needle</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
  • $ haystack : Die String, nach der gesucht wird.

  • $ nadel : Das zu findene Substring.

  • $ vor_needle : Wenn auf True gesetzt, wird das Teil vor der Rückgabe der Nadel und der Teil nach der Rückgabe der Nadel standardmäßig zurückgegeben.

Beispiel:

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Hello World!"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-string">"world"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;  </span><span><span class="hljs-comment">// Ausgabe "World!"</span></span><span>
</span></span>

In diesem Beispiel ignoriert Strrist () den Fall, so dass es "Welt" mit "Welt" übereinstimmen kann.

2. Die Funktion preg_match ()

preg_match () ist eine Funktion in PHP für die reguläre Expressionsübereinstimmung. Es kann Strings basierend auf dem bereitgestellten regelmäßigen Ausdruck übereinstimmen. Im Gegensatz zu Strrist () ermöglicht preg_match () komplexere Übereinstimmungsvorgänge mit leistungsstarken regulären Expressionsregeln. Diese Funktion unterstützt nicht nur die unempfindliche Übereinstimmung, sondern auch eine Vielzahl anderer Übereinstimmungsmuster wie Charakterklassen, Quantifizierer, Randbedingungen usw.

Grammatik:

 <span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$subject</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> &amp;</span><span><span class="hljs-variable">$matches</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$flags</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$offset</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
  • $ muster : reguläres Ausdrucksmuster.

  • $ Betreff : Die Zeichenfolge, die abgestimmt ist.

  • $ Matches : Wenn das Spiel erfolgreich ist, geben Sie das Matching -Ergebnis zurück.

  • $ flags : Flag -Bit, steuert das Matching -Verhalten.

  • $ offset : Die Startposition des Spiels.

Beispiel:

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Hello World!"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-string">"/world/i"</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Erfolgreich übereinstimmen"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Match fehlgeschlagen"</span></span><span>;
}
</span></span>

In diesem Beispiel verwendet Preg_match () den regulären Ausdruck /die Welt /i, um der Zeichenfolge "Hello World!" Zu entsprechen. Das I -Flag zeigt an, dass der Groß- und Kleinbuchstaben in Groß- und Kleinbuchstaben und Kleinbuchstaben im Groß- und Kleinbuchstaben so erfolgreich übereinstimmt, auch wenn der Fall von "Welt" unterschiedlich ist.

3. Die Differenz zwischen strst () und preg_match ()

  1. Funktionale Komplexität :

    • Strrist () ist eine einfache String -Suchfunktion, die für einfache Suchaufgaben geeignet ist. Es dauert nur zwei Parameter: die Zeichenfolge und die Zielzeichenfolge. Die Übereinstimmungsregeln sind sehr einfach und konzentrieren sich hauptsächlich auf die Suche nach Substrings und Support -Fall unempfindlich.

    • preg_match () ist eine leistungsstärkere Funktion, die regelmäßige Ausdrücke verwenden kann, um komplexe Übereinstimmungen durchzuführen und vielfältigere String -Matching -Aufgaben auszuführen. Sie können komplexe Muster, Zeichenklassen, Quantifizierer usw. angeben, die flexibler sind.

  2. Leistungsunterschiede :

    • Da Strristr () eine einfache Funktion hat, ist es normalerweise besser als Preg_match () in der Leistung. Insbesondere wenn nur einfache Substring -Suchvorgänge erforderlich sind, ist Strrist () effizienter in der Leistung.

    • preg_match () erfordert das Parsen regelmäßiger Ausdrücke für komplexere Musteranpassungen. Daher ist es relativ langsam in der Leistung, insbesondere wenn es sich um sehr große Saiten oder komplexe reguläre Ausdrücke handelt.

  3. Die Differenz im Rückkehrwert :

    • Strristr () gibt den Teil der Zielzeichenfolge aus der passenden Position bis zum Ende der Zeichenfolge zurück, wenn sie eine Übereinstimmung findet. Wenn keine Übereinstimmung gefunden wird, wird False zurückgegeben.

    • Wenn preg_match () erfolgreich übereinstimmt, wird 1 zurückgegeben, und wenn es fehlschlägt, gibt es 0 zurück, und über den Parameter $ Matches können weitere übereinstimmende Informationen (z. B. übereinstimmende Substrings, erfasste Pakete usw.) zurückgegeben werden.

  4. Reguläre Ausdrucksunterstützung :

    • Strrist () unterstützt keine regulären Ausdrücke, und die Matching -Funktion ist relativ begrenzt, sodass sie nur eine einfache Zeichenanpassung durchführen kann.

    • preg_match () unterstützt vollständige regelmäßige Ausdrücke und kann komplexe Vorgänge wie Musteranpassung, Gruppierung und Rückreferenz ausführen.

4. Verwenden Sie Szenarien

  • Strrist () Nutzungsszenario :
    Geeignet für einfache Substring -Suchvorgänge, insbesondere wenn Sie nur ein festes Substring finden müssen. Aufgrund seiner guten Leistung ist es für Szenarien mit hohen Leistungsanforderungen geeignet.

  • PREG_MATCH () Nutzungsszenario :
    Geeignet für komplexe Musteranpassungen, insbesondere wenn Sie regelmäßige Ausdrücke verwenden müssen, um eine komplexe Parsen durchzuführen, zu validieren oder die Vorgänge auf Zeichenfolgen zu ersetzen. preg_match () kann mehr übereinstimmende Steuerung und Flexibilität liefern.