Heim >Backend-Entwicklung >Golang >Wie kann ich Zeichenfolgen ohne bestimmte Dateierweiterungen in der Regex-Engine von Go abgleichen?
Negierte Mengen in der Regex-Engine von Go verstehen
In Go fehlt der regulären Ausdrucks-Engine (RE2) der Standardbibliothek die Unterstützung für Lookarounds, einschließlich der negativer Lookahead-Operator ?! wie im bereitgestellten regulären Ausdruck verwendet:
^(.*\.(?!(htm|html|class|js)$))?[^.]
Diese Regex zielt darauf ab, Zeichenfolgen abzugleichen, die nicht mit bestimmten Dateierweiterungen enden. In Go funktioniert es jedoch aufgrund der fehlenden Lookaround-Unterstützung nicht wie erwartet.
Alternative Lösungen
Anstatt sich auf eine negierte Menge zu verlassen, gibt es Alternativen Lösungen, um dieses Szenario in Go zu bewältigen:
Dateierweiterung direkt überprüfen:
Ersetzen Sie den negierten Satz durch eine direkte Prüfung auf die gewünschten Dateierweiterungen:
re.MustCompile(`(type1|type2)_(\d+)\.(csv|ini)`)
Nachgestellte Periode entfernen:
Wenn das Ziel darin besteht, sicherzustellen, dass die Zeichenfolge mit einer dreistelligen Dateierweiterung ohne zusätzliche Zeichen endet, wird ein vereinfachter Ausdruck kann verwendet werden:
re.MustCompile(`\.\w{3}$`)
Übereinstimmungsverhalten
Durch Entfernen des negierten Satzes oder Verwenden einer alternativen Syntax wird die Regex-Engine von Go genau Passen Sie die gewünschten Zeichenfolgen wie erwartet an.
Das obige ist der detaillierte Inhalt vonWie kann ich Zeichenfolgen ohne bestimmte Dateierweiterungen in der Regex-Engine von Go abgleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!