Heim  >  Artikel  >  Backend-Entwicklung  >  Warum funktioniert mein durch Regex negierter Satz in Go nicht?

Warum funktioniert mein durch Regex negierter Satz in Go nicht?

DDD
DDDOriginal
2024-10-27 11:05:02292Durchsuche

Why Doesn't My Regex Negated Set Work in Go?

Regex-negierter Satz funktioniert in Go nicht

Ein Benutzer ist auf ein Problem gestoßen, bei dem sich sein regulärer Ausdruck in Go anders verhält als bei Online-Regex-Parsern . Ziel ist es, Dateinamen mit bestimmten Bedingungen abzugleichen und solche mit bestimmten Dateierweiterungen auszuschließen. Allerdings führt die Verwendung einer negierten Menge (?!) im Ausdruck nicht zu den gewünschten Ergebnissen in Go.

Gos RE2-Engine und fehlende Lookaround-Unterstützung

Die Die Go-Standardbibliothek verwendet die RE2-Engine, die bestimmte Funktionen nicht unterstützt, einschließlich Lookahead-Operatoren (?!). Dies bedeutet, dass der im Ausdruck des Benutzers verwendete negierte Lookahead-Operator in Go nicht unterstützt wird.

Alternative Lösung mit vereinfachtem Ausdruck

Um die beabsichtigte Funktionalität zu erreichen, kann der Benutzer vereinfachen den Ausdruck so, dass er mit den gewünschten Merkmalen des Dateinamens übereinstimmt. Anstatt eine negierte Menge zu verwenden, kann ein expliziteres Muster verwendet werden, z. B. .w{3}$:

  • . stellt einen wörtlichen Punkt dar.
  • w{3} gibt drei aufeinanderfolgende Wortzeichen (Buchstaben, Zahlen oder Unterstriche) an.
  • $ gibt das Ende der Zeichenfolge an.

Dieser vereinfachte Ausdruck stellt sicher, dass der Dateiname mit einer dreistelligen Dateierweiterung endet, ohne dass ein negierter Satz erforderlich ist.

Das obige ist der detaillierte Inhalt vonWarum funktioniert mein durch Regex negierter Satz in Go nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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