So erfassen Sie mehrere Gruppen in Anführungszeichen in Go: Eine Regex-Lösung

Mary-Kate Olsen
Freigeben: 2024-10-26 00:53:28
Original
819 Leute haben es durchsucht

How to Capture Multiple Quoted Groups in Go: A Regex Solution

Erfassen mehrerer Gruppen in Anführungszeichen in Go

Dieser Artikel befasst sich mit der Herausforderung beim Parsen von Zeichenfolgen, die einem bestimmten Format folgen: ein Befehl in Großbuchstaben, gefolgt von optional zitierte Argumente. Das Ziel besteht darin, sowohl den Befehl als auch die Argumente als separate Zeichenfolgen zu extrahieren.

Um diese Aufgabe zu bewältigen, wird ein regulärer Ausdruck verwendet: re1, _ := regexp.Compile(([A-Z] )(?: " (1 )")*). Die erste einfangende Gruppe ([A-Z] ) stimmt mit dem Großbuchstabenbefehl überein, während die zweite einfangende Gruppe (?: „([^“] )“)* mit null oder mehr Argumenten in Anführungszeichen übereinstimmt.

Allerdings der bereitgestellte Code erfasst nur das letzte Argument. Um dieses Problem zu lösen, wird ein entspannterer regulärer Ausdruck vorgeschlagen: re1, _ := regexp.Compile(([A-Z] )|(?: "(1 )")). Dieser reguläre Ausdruck verwendet eine Union |, um entweder einen Befehl oder ein Argument zuzulassen.

Durch Ändern des Codes wie folgt:

<code class="go">re1, _ := regexp.Compile(`([A-Z]+)|(?: "([^"]+)")`)
results := re1.FindAllStringSubmatch(`COMMAND "arg1" "arg2" "arg3"`, -1)

fmt.Println("Command:", results[0][1])
for _, arg := range results[1:] {
    fmt.Println("Arg:", arg[2])
}</code>
Nach dem Login kopieren

Alle Argumente können jetzt erfolgreich erfasst werden. Dieser überarbeitete reguläre Ausdruck ist vielseitiger und berücksichtigt Variationen im Eingabeformat, bei denen Befehle und Argumente in unterschiedlicher Reihenfolge auftreten können.


  1. "

Das obige ist der detaillierte Inhalt vonSo erfassen Sie mehrere Gruppen in Anführungszeichen in Go: Eine Regex-Lösung. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!