Heim > Backend-Entwicklung > Golang > Wie kann ich eine negative Lookbehind-Funktionalität in regulären Go-Ausdrücken erreichen?

Wie kann ich eine negative Lookbehind-Funktionalität in regulären Go-Ausdrücken erreichen?

Susan Sarandon
Freigeben: 2024-12-15 13:04:24
Original
410 Leute haben es durchsucht

How Can I Achieve Negative Lookbehind Functionality in Go Regular Expressions?

Negatives Lookbehind in Go: Eine Lösung

In Go werden negative Lookbehind-Behauptungen aufgrund von Leistungsbedenken nicht unterstützt. Um diese Herausforderung zu meistern, können Sie alternative Methoden erkunden, um die gleiche Funktionalität zu erreichen.

Der ursprüngliche reguläre Ausdruck zielte darauf ab, Befehle zu extrahieren, die nicht mit den Zeichen @, # oder / begannen. Hier gibt es zwei Möglichkeiten:

1. Negierter Zeichensatz:

Entfernen Sie das negative Lookbehind und ersetzen Sie es durch einen negierten Zeichensatz.

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

Wenn es am Anfang der Zeichenfolge zulässig ist, verankern Sie es mit ^

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

2. Filterfunktion:

Implementieren Sie eine Filterfunktion, die Wörter entfernt, die mit bestimmten Zeichen beginnen.

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

Verwenden Sie die Filterfunktion in einer Prozessfunktion, um Eingabetext zu verarbeiten.

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

Diese Lösungen bieten Alternativen zum negativen Lookbehind in Go und gewährleisten eine effiziente Regex-Verarbeitung.

Das obige ist der detaillierte Inhalt vonWie kann ich eine negative Lookbehind-Funktionalität in regulären Go-Ausdrücken erreichen?. 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