Maison >développement back-end >Golang >Comment effectuer des recherches de chaînes insensibles à la casse dans Go ?
Recherche de chaînes insensibles à la casse dans Go
Lors de la recherche de chaînes spécifiques dans des fichiers, il peut être nécessaire d'effectuer des recherches insensibles à la casse pour garantir toutes les occurrences sont capturées. Ceci est particulièrement utile lorsque vous travaillez avec du texte pouvant contenir à la fois des caractères majuscules et minuscules.
Dans Go, la fonction strings.EqualFold() fournit une solution pratique pour la correspondance de chaînes insensible à la casse. Il compare deux chaînes et renvoie vrai si elles sont égales, quelle que soit la casse des caractères. Cette fonction gère même les caractères Unicode, ce qui la rend adaptée à un large éventail de cas d'utilisation.
Par exemple, considérons le scénario suivant : vous devez rechercher la chaîne "Mise à jour" dans un fichier. Vous souhaitez que la recherche corresponde à la fois à "Update" et "update", car ils sont considérés comme équivalents dans un contexte insensible à la casse.
Pour ce faire, vous pouvez utiliser la fonction strings.EqualFold() comme suit :
package main import ( "fmt" "strings" ) func main() { if strings.EqualFold("Update", "update") { fmt.Println("Match found") } }
Dans cet exemple, la fonction strings.EqualFold() retournera true, indiquant que "Update" et "update" sont considérés comme égaux lorsque la casse est ignorée.
Pour plus exemple complet, considérons le programme suivant qui montre comment effectuer une recherche insensible à la casse dans un fichier :
package main import ( "bufio" "fmt" "os" "strings" ) func main() { // Open the file for reading file, err := os.Open("file.txt") if err != nil { panic(err) } defer file.Close() // Create a scanner to iterate over the file line by line scanner := bufio.NewScanner(file) // Specify the target string to search for target := "Update" // Read the file line by line for scanner.Scan() { line := scanner.Text() // Perform a case-insensitive search for the target string if strings.Contains(strings.ToLower(line), strings.ToLower(target)) { fmt.Println("Match found in line:", line) } } }
Dans ce programme, la fonction strings.Contains() est utilisée pour rechercher la version minuscule de la chaîne cible dans la version minuscule de chaque ligne du fichier. Cela garantit que "Update" et "update" correspondent.
La sortie du programme sera une liste de lignes contenant la chaîne cible, quelle que soit sa casse. Ceci montre comment effectuer des recherches de chaînes insensibles à la casse dans Go à l'aide des fonctions strings.EqualFold() et strings.Contains().
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!