Wie passt man jedes sich wiederholende Zeichen mit regulären Ausdrücken in Go an?
In diesem Artikel befassen wir uns mit der Herausforderung, jedes Zeichen zu finden, das wird zweimal mit regulären Ausdrücken in Go wiederholt. Diese Aufgabe ist in anderen Regex-Syntaxen wie JavaScript oft unkompliziert, wo man einfach Rückverweise verwenden kann, um sich wiederholende Zeichen abzugleichen. Die native Engine für reguläre Ausdrücke von Go (re2) unterstützt jedoch keine Rückverweise.
Rückverweise können in Gos re2 nicht verwendet werden
Das bereitgestellte JavaScript-Beispiel nutzt Rückverweise zur Erfassung sich wiederholende Zeichen:
var str = "abccdeff";
var r = /([a-z]{1})\1/g
console.log(str.match(r))
Dieses Muster würde in Gos re2 aufgrund der fehlenden Rückreferenzunterstützung fehlschlagen.
Alternativen zu Gos re2
Um diese Einschränkung zu beheben, ziehen Sie die folgenden Alternativen in Betracht:
Beispiel für eine benutzerdefinierte Schleifenlösung
package main
import (
"fmt"
"regexp"
)
func main() {
str := "abccdeff"
// Find and print repeating characters without using regex
for i, ch := range str {
if i 1
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