Heim >Web-Frontend >js-Tutorial >So passen Sie Regex-Instanzen außerhalb von Anführungszeichen in JavaScript an: Eine umfassende Anleitung
Abgleich von Instanzen, die nicht in Anführungszeichen eingeschlossen sind
In einer früheren Frage wurde vorgeschlagen, alle Vorkommen eines regulären Ausdrucks abzugleichen und dabei Text in Anführungszeichen auszuschließen ist nicht machbar. Diese Einschränkung kann jedoch mithilfe einer komplexen, aber effektiven Regex überwunden werden.
Der Schlüssel zu dieser Regex liegt in der Beobachtung, dass ein Teilstring außerhalb von Anführungszeichen steht, wenn ihm eine gerade Anzahl von Anführungszeichen vorausgeht. Dies kann als die folgende Look-Ahead-Behauptung dargestellt werden:
(?=([^"]*"[^"]*")*[^"]*$)
Diese Behauptung stellt sicher, dass der vorhergehende Text eine gerade Anzahl von Anführungszeichen enthält, gefolgt von der aktuellen Teilzeichenfolge.
Um maskierte Anführungszeichen auszuschließen , müssen wir auch Backslashes berücksichtigen. Der reguläre Ausdruck wird etwas komplexer:
\+(?=([^"\]*(\.|"([^"\]*\.)*[^"\]*"))*[^"]*$)
Dieser reguläre Ausdruck geht zunächst über alle Nicht-Anführungszeichen (S) hinaus. Wenn auf einen Backslash oder ein Anführungszeichen gestoßen wird, wird entweder das nächste Zeichen ignoriert (wenn es sich um einen Backslash handelt) oder andernfalls zum nächsten nicht maskierten Anführungszeichen weitergegangen.
Obwohl dieser reguläre Ausdruck etwas kompliziert ist, stimmt er effektiv mit allen Instanzen überein des regulären Ausdrucks, der nicht in Anführungszeichen eingeschlossen ist, was das gewünschte Ergebnis in den JavaScript-Methoden „split()“ und „replace()“ ermöglicht.
Das obige ist der detaillierte Inhalt vonSo passen Sie Regex-Instanzen außerhalb von Anführungszeichen in JavaScript an: Eine umfassende Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!