Wie kann man Lookarounds in regulären Go-Ausdrücken umgehen?

Mary-Kate Olsen
Freigeben: 2024-11-12 19:47:02
Original
1027 Leute haben es durchsucht

How to Workaround Lookarounds in Go Regular Expressions?

Fehler beim Parsen von Regexp: Ungültige oder nicht unterstützte Perl-Syntax (?!

Beim Versuch, einen regulären Ausdruck in Go zu kompilieren, stoßen Benutzer möglicherweise auf den folgenden Parsing-Fehler:

error parsing regexp: invalid or unsupported Perl syntax: (?!
Nach dem Login kopieren

Dieser Fehler wird normalerweise ausgelöst, wenn versucht wird, einen Lookaround-Operator (?!...) zu verwenden, der in der regulären Ausdruckssyntax von Go nicht unterstützt wird.

Informationen zu Lookarounds

Lookarounds sind eine spezielle Art von regulären Ausdrucksoperatoren, die nur dann zum Abgleichen eines Musters verwendet werden, wenn diesem nicht unmittelbar ein anderes spezifisches Muster folgt oder vorangestellt ist. In diesem Fall wird (?! verwendet, um zu überprüfen, ob eine bestimmte Zeichenfolge nicht mit dem Text beginnt „Ein“.

Go Regexp Workaround

Da Go Lookarounds nicht unterstützt, stehen mehrere Workarounds zur Verfügung:

Separate Regexps verwenden

Ein Ansatz besteht darin, zwei separate reguläre Ausdrücke zu verwenden:

nonOnRegex := regexp.MustCompile("^(?!On.*On\s.+?wrote:)(On\s(.+?)wrote:)$")
onOnRegex := regexp.MustCompile("^On.*On\s.+?wrote:")
Nach dem Login kopieren

Sie können dann überprüfen, ob nonOnRegex mit der Zeichenfolge übereinstimmt und onOnRegex nicht übereinstimmt, um das gewünschte Ergebnis zu ermitteln.

Optionale Erfassungsgruppen verwenden

Eine weitere Problemumgehung besteht darin, eine optionale Erfassungsgruppe zu verwenden:

regex := regexp.MustCompile(`^On(.*On)?\s.+?wrote:`)
Nach dem Login kopieren

Nachdem Sie die Zeichenfolge mit diesem regulären Ausdruck abgeglichen haben, können Sie überprüfen, ob die erste Die Erfassungsgruppe existiert und endet mit „Ein“. Wenn ja, geben Sie „false“ zurück, andernfalls „true“.

Durch die Implementierung einer dieser Problemumgehungen können Sie die Funktionalität von Lookarounds in der regulären Ausdruckssyntax von Go effektiv replizieren.

Das obige ist der detaillierte Inhalt vonWie kann man Lookarounds in regulären Go-Ausdrücken umgehen?. 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