So implementieren Sie einen negativen Satz in Regex für Go: Eine Anleitung zur Vermeidung unerwarteter Ergebnisse

Susan Sarandon
Freigeben: 2024-10-26 07:23:02
Original
769 Leute haben es durchsucht

 How to Implement Negative Set in Regex for Go: A Guide to Avoiding Unexpected Results

Implementieren eines negativen Satzes in Regex für Go

Der bereitgestellte reguläre Ausdruck zielt darauf ab, Dateinamen zu erfassen, die nicht auf bestimmte Dateierweiterungen enden (z. B. , htm, html, class, js). Allerdings führt die Implementierung in Go unter Verwendung des Regexp-Pakets zu anderen Ergebnissen als Online-Regex-Parser.

Diese Diskrepanz entsteht, weil die RE2-Regex-Engine der Go-Standardbibliothek keine negativen Lookaheads unterstützt (d. h. den in der Go-Standardbibliothek verwendeten ?!-Operator). ursprünglicher Ausdruck). Daher können Zeichenfolgen, die mit den angegebenen Dateierweiterungen enden, nicht ausgeschlossen werden.

Um das Verhalten des Online-Regex-Parsers zu reproduzieren, können Sie die folgenden Ansätze in Betracht ziehen:

  • Verwenden Sie einen positiven Lookahead (?!.(htm|html|class|js)$): Dies stellt sicher, dass die Eingabezeichenfolge nicht mit einer der angegebenen Dateierweiterungen endet.
<code class="go">re := regexp.MustCompile(`^(.*\.(?!(htm|html|class|js)$))([^.]*)$`)</code>
Nach dem Login kopieren
  • Negatives Lookbehind verwenden (? Dies stellt sicher, dass der Eingabezeichenfolge keine der angegebenen Dateierweiterungen vorangestellt ist.
<code class="go">re := regexp.MustCompile(`^(.*?)(?<!\.(htm|html|class|js)$)`)</code>
Nach dem Login kopieren
  • Negativsatz entfernen und Literal-Dateierweiterung verwenden: Wenn Sie nur sicherstellen müssen, dass die Zeichenfolge mit einer dreistelligen Dateierweiterung endet, können Sie dies tun Vereinfachen Sie den Ausdruck zu:
<code class="go">re := regexp.MustCompile(`.\w{3}$`)</code>
Nach dem Login kopieren

Beachten Sie, dass diese Ausdrücke zu unterschiedlichen Ergebnissen führen können, da sie die Logik auf unterschiedliche Weise implementieren. Es ist wichtig, den Ansatz zu wählen, der am besten zu Ihrem Anwendungsfall passt.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen negativen Satz in Regex für Go: Eine Anleitung zur Vermeidung unerwarteter Ergebnisse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!