Heim > Backend-Entwicklung > Golang > Wie kann ich negative Lookbehind-Behauptungen in regulären Go-Ausdrücken simulieren?

Wie kann ich negative Lookbehind-Behauptungen in regulären Go-Ausdrücken simulieren?

Susan Sarandon
Freigeben: 2024-12-01 00:35:12
Original
379 Leute haben es durchsucht

How Can I Simulate Negative Lookbehind Assertions in Go Regular Expressions?

Simulieren eines negativen Lookbehind in Go

Ihre ursprüngliche Regex mit einer negativen Lookbehind-Behauptung zielt darauf ab, Befehle ohne vorangestelltes @, #, oder / Zeichen. Allerdings unterstützt Go keine negativen Lookbehinds, was eine Hürde bei der Implementierung dieses Musters darstellt.

Regex neu schreiben

Um die gleiche Funktionalität ohne negative Lookbehinds zu erreichen, können wir ersetzen die Zeichen, die innerhalb des Zeichensatzes ausgeschlossen werden sollen:

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

Wenn Befehle nicht mit diesen Zeichen beginnen dürfen, können wir dies tun Verwenden Sie den ^-Anker, um diese Bedingung zu erzwingen:

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

Alternativer Ansatz mit Go-Funktionen

Alternativ können Sie Go-Funktionen verwenden, um die Eingabezeichenfolge zu filtern und zu verarbeiten:

func Filter(vs []string, f func(string) bool) []string { ... }

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

Dieser Ansatz nutzt eine Filterfunktion, um Wörter auszuschließen, die mit den angegebenen Zeichen beginnen, und fügt dann die verbleibenden Wörter wieder zu einer neuen Zeichenfolge zusammen. Eine funktionierende Demonstration auf dem Go-Spielplatz finden Sie unter http://play.golang.org/p/ntJRNxJTxo.

Das obige ist der detaillierte Inhalt vonWie kann ich negative Lookbehind-Behauptungen in regulären Go-Ausdrücken simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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