Heim > Artikel > Backend-Entwicklung > Warum erhalte ich „Unbekannter Modifikator ‚g‘ in preg_match“ und wie kann ich das beheben?
Adressierung von „Unbekannter Modifikator 'g' in preg_match in PHP“
Beim Erkunden der Feinheiten regulärer Ausdrücke ist Ihnen möglicherweise ein Fehler aufgefallen Meldung „Unbekannter Modifikator ‚g‘ in…“ bei Verwendung von preg_match. Dieses Problem tritt auf, wenn Sie versuchen, den Modifikator „g“ in Ihrem Regex-Muster zu verwenden. Allerdings gibt es in preg_match keinen Modifikator „g“.
Um dieses Problem zu beheben, müssen Sie stattdessen zur Funktion preg_match_all wechseln. Im Gegensatz zu preg_match, das nach dem ersten Vorkommen des Musters sucht und einen booleschen Wert zurückgibt, sucht preg_match_all nach allen Vorkommen des Musters und gibt ein Array von Übereinstimmungen zurück.
Korrekt geändertes Regex-Muster
Ihr ursprüngliches Regex-Muster ist:
/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim
Um dieses Muster mit preg_match_all zu verwenden, ändern Sie es wie folgt:
/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im
Überarbeiteter Code
Ersetzen Sie Ihren ursprünglichen preg_match-Aufruf durch Folgendes:
preg_match_all("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im", ....)
Durch diese einfache Anpassung können Sie den Fehler „‚g‘-Modifikator nicht unterstützt“ beseitigen und mehrere Vorkommen des Musters korrekt verarbeiten in deiner Zeichenfolge.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich „Unbekannter Modifikator ‚g‘ in preg_match“ und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!