Erfassen sich wiederholender Gruppen in GO
Beim Versuch, Zeichenfolgen zu analysieren, die einem bestimmten Format folgen, z. B. Wörter in Großbuchstaben, gefolgt von null oder mehr Doppelzeichen Um Argumente in Anführungszeichen zu setzen, muss ein regulärer Ausdruck definiert werden, der die gewünschten Elemente erfasst. Im bereitgestellten Szenario der Versuch, sich wiederholende Argumente mithilfe des folgenden regulären Ausdrucks zu erfassen:
re1, _ := regexp.Compile(`([A-Z] )(?: "([^"] )")*`)
konnte nicht alle Argumente korrekt erfassen. Um dieses Problem zu beheben, wird ein überarbeiteter regulärer Ausdruck vorgeschlagen:
re1, _ := regexp.Compile(`([A-Z] )|(?: "([^"] )")`)
Dieser überarbeitete reguläre Ausdruck entspricht entweder einem Wort in Großbuchstaben oder einer Zeichenfolge in doppelten Anführungszeichen, ohne die umgebenden Anführungszeichen zu erfassen. Dieser Ansatz ermöglicht eine bessere Erfassung sich wiederholender Argumente, wie im folgenden Codeausschnitt gezeigt:
results := re1.FindAllStringSubmatch(`COMMAND "arg1" "arg2" "arg3"`, -1) fmt.Println("Command:", results[0][1]) for _, arg := range results[1:] { fmt.Println("Arg:", arg[2]) }
Dieser überarbeitete Ansatz erfasst erfolgreich den Befehl und seine drei Argumente und gibt sie separat aus.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3