Considérez un scénario dans lequel vous construisez une expression régulière à partir de l'entrée de l'utilisateur, comme le montre le code suivant :
reg, err := regexp.Compile(strings.Replace(s.Name, " ", "[ \._-]", -1))
où s.Name est une chaîne du type « North by Northwest ». Vous pouvez envisager de parcourir les caractères et de construire manuellement des expressions insensibles à la casse :
for i := 0; i < len(s.Name); i++ { if s.Name[i] == " " { fmt.Fprintf(str, "%s[ \._-]", str); } else { fmt.Fprintf(str, "%s[%s%s]", str, strings.ToLower(s.Name[i]), strings.ToUpper(s.Name[i])) } }
Cependant, il existe une solution plus efficace.
Vous pouvez spécifier une recherche insensible à la casse en ajoutant le drapeau (?i) au début de votre regex :
reg, err := regexp.Compile("(?i)"+strings.Replace(s.Name, " ", "[ \._-]", -1))
Pour une regex fixe, cet indicateur peut être utilisé comme suit :
r := regexp.MustCompile(`(?i)CaSe`)
Plus d'informations sur les indicateurs d'expression régulière peuvent être trouvées dans la documentation du package regexp/syntax.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!