Heim > Backend-Entwicklung > Golang > Wie kann ich negative Lookbehind-Behauptungen in Go simulieren?

Wie kann ich negative Lookbehind-Behauptungen in Go simulieren?

Linda Hamilton
Freigeben: 2024-11-27 14:18:11
Original
492 Leute haben es durchsucht

How Can I Simulate Negative Lookbehind Assertions in Go?

Simulieren negativer Lookbehind-Behauptungen in Go

Während negative Lookbehind-Behauptungen in Go nicht nativ unterstützt werden, gibt es alternative Methoden, um ähnliche Ergebnisse zu erzielen. Wenn Sie beispielsweise versuchen, Befehle wie „foo bar baz“ zu extrahieren und dabei Befehle mit Präfixen wie „@“, „#“ oder „/“ auszuschließen, können Sie einen negierten Zeichensatz anstelle eines negativen Lookbehind verwenden.

Zum Beispiel stimmt der folgende reguläre Ausdruck mit Wörtern überein, die nicht mit diesen Zeichen beginnen:

\b[^@#/]\w.*
Nach dem Login kopieren

Wenn auch Zeichen am Anfang der Zeichenfolge stehen können, kann dies der ^-Anker sein verwendet:

(?:^|[^@#\/])\b\w.*
Nach dem Login kopieren

Ein anderer Ansatz besteht darin, eine Filterfunktion zu verwenden, um unerwünschte Wörter zu entfernen:

func Filter(vs []string, f func(string) bool) []string {
    vsf := make([]string, 0)
    for _, v := range vs {
        if f(v) {
            vsf = append(vsf, v)
        }
    }
    return vsf
}
Nach dem Login kopieren

Dieser Filter kann dann mit einer Verarbeitungsfunktion kombiniert werden, um Wörter mit bestimmten Präfixen zu entfernen, wie z unten demonstriert:

func Process(inp string) string {
    t := strings.Split(inp, " ")
    t = Filter(t, func(x string) bool {
        return strings.Index(x, "#") != 0 &&
            strings.Index(x, "@") != 0 &&
            strings.Index(x, "/") != 0
    })
    return strings.Join(t, " ")
}
Nach dem Login kopieren

Durch die Anwendung dieser Filtertechniken kann man negatives Lookbehind-Verhalten in Go simulieren und so eine effiziente Zuordnung und Extraktion spezifischer Elemente ermöglichen Muster.

Das obige ist der detaillierte Inhalt vonWie kann ich negative Lookbehind-Behauptungen in Go simulieren?. 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