Heim > Backend-Entwicklung > Golang > Wie kann ich in Go effizient reguläre Ausdrücke ohne Berücksichtigung der Groß- und Kleinschreibung erstellen?

Wie kann ich in Go effizient reguläre Ausdrücke ohne Berücksichtigung der Groß- und Kleinschreibung erstellen?

Barbara Streisand
Freigeben: 2024-12-07 20:41:18
Original
582 Leute haben es durchsucht

How Can I Efficiently Create Case-Insensitive Regular Expressions in Go?

Reguläre Ausdrücke ohne Berücksichtigung der Groß-/Kleinschreibung in Go

Stellen Sie sich ein Szenario vor, in dem Sie einen regulären Ausdruck aus Benutzereingaben erstellen, wie im folgenden Code dargestellt:

reg, err := regexp.Compile(strings.Replace(s.Name, " ", "[ \._-]", -1))
Nach dem Login kopieren

wobei s.Name eine Zeichenfolge wie „North by Northwest“ ist. Sie könnten erwägen, über die Zeichen zu iterieren und manuell Ausdrücke zu erstellen, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird:

for i := 0; i < len(s.Name); i++ {
  if s.Name[i] == " " {
    fmt.Fprintf(str, "%s[ \._-]", str);
  } else {
    fmt.Fprintf(str, "%s[%s%s]&quot;, str, strings.ToLower(s.Name[i]), strings.ToUpper(s.Name[i]))
  }
}
Nach dem Login kopieren

Es gibt jedoch eine effizientere Lösung.

Verwendung des Flags für die Groß-/Kleinschreibung

Sie können eine Suche festlegen, bei der die Groß-/Kleinschreibung nicht berücksichtigt wird, indem Sie das Flag (?i) am Anfang Ihrer Eingabe hinzufügen Regex:

reg, err := regexp.Compile("(?i)"+strings.Replace(s.Name, " ", "[ \._-]", -1))
Nach dem Login kopieren

Für einen festen Regex kann dieses Flag wie folgt verwendet werden:

r := regexp.MustCompile(`(?i)CaSe`)
Nach dem Login kopieren

Weitere Informationen zu Regex-Flags finden Sie in der Dokumentation zum Regexp/Syntax-Paket.

Das obige ist der detaillierte Inhalt vonWie kann ich in Go effizient reguläre Ausdrücke ohne Berücksichtigung der Groß- und Kleinschreibung erstellen?. 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