Beim dynamischen Erstellen regulärer Ausdrücke aus Benutzereingaben ist es eine häufige Anforderung, sie ohne Berücksichtigung der Groß-/Kleinschreibung zu machen. Der Bedarf entsteht, wenn die Eingabezeichenfolge sowohl Groß- als auch Kleinbuchstaben enthalten kann, die Übereinstimmung diese jedoch als gleichwertig betrachten sollte.
Ein einfacher Ansatz besteht darin, beide Fälle im regulären Ausdruck manuell zu behandeln, wie in diesem Beispiel zu sehen:
reg, err := regexp.Compile(`[a-zA-Z]`)
Wenn der reguläre Ausdruck jedoch aus einer Zeichenfolge erstellt wird, ist eine elegantere Lösung verfügbar.
Um einen regulären Ausdruck zu erstellen, bei dem die Groß-/Kleinschreibung nicht berücksichtigt wird, fügen Sie hinzu (?i) an den Anfang des Ausdrucks:
reg, err := regexp.Compile("(?i)" + strings.Replace(s.Name, " ", "[ \._-]", -1))
Dieses Flag bewirkt, dass die Engine für reguläre Ausdrücke Groß-/Kleinschreibung ignoriert, sodass bei der Übereinstimmung die Groß-/Kleinschreibung nicht beachtet wird.
Weitere Informationen zu regulären Ausdrücken Ausdrucksflags finden Sie in der Dokumentation zum Regexp/Syntax-Paket unter dem Begriff „Flags“.
Das obige ist der detaillierte Inhalt vonWie führe ich in Go reguläre Ausdrücke aus, bei denen die Groß-/Kleinschreibung nicht beachtet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!