Heim > Backend-Entwicklung > Golang > Wie erfasst man mehrere Argumente in Go mithilfe regulärer Ausdrücke?

Wie erfasst man mehrere Argumente in Go mithilfe regulärer Ausdrücke?

Mary-Kate Olsen
Freigeben: 2024-10-27 10:56:01
Original
387 Leute haben es durchsucht

How to Capture Multiple Arguments in Go Using Regular Expressions?

Erfassen mehrerer Gruppen in Go: Eine Fallstudie

Beim Parsen von Zeichenfolgen, die Wörter in Großbuchstaben gefolgt von optionalen Argumenten in doppelten Anführungszeichen enthalten, werden einzelne Gruppen isoliert kann eine Herausforderung sein. Ein gängiger Ansatz ist die Verwendung regulärer Ausdrücke, wie im folgenden Codeausschnitt dargestellt:

<code class="go">re1, _ := regexp.Compile(`([A-Z]+)(?: "([^"]+)")*`)
results := re1.FindAllStringSubmatch(input, -1)</code>
Nach dem Login kopieren

Wenn jedoch mehrere Argumente vorhanden sind, können Probleme auftreten, da nur das letzte Argument erfasst wird. Um dieses Problem zu lösen, ist ein flexiblerer regulärer Ausdruck erforderlich.

Erweiterter regulärer Ausdruck

Durch Lockerung der Gruppierungsbeschränkungen können wir sowohl Befehle als auch Argumente effektiv erfassen:

re1, _ := regexp.Compile(`([A-Z]+)|(?: "([^"]+)")`)
Nach dem Login kopieren

In dieser überarbeiteten Regex:

  • Die erste Gruppe ([A-Z]) entspricht Großbuchstaben (Befehlen).
  • Die zweite Gruppe (?: "( [^"] )") entspricht Argumenten in doppelten Anführungszeichen und ermöglicht so mehrere Vorkommen.

Extraktion und Anzeige

Sobald die Gruppen erfasst sind, können wir sie extrahieren und den Befehl und die Argumente separat anzeigen:

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

Dieser Ansatz ermöglicht ein effizientes Parsen von Zeichenfolgen mit wohldefinierten Befehlsstrukturen.

Das obige ist der detaillierte Inhalt vonWie erfasst man mehrere Argumente in Go mithilfe regulärer Ausdrücke?. 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