Maison > développement back-end > Golang > Comment puis-je trouver efficacement des modèles qui se chevauchent dans des chaînes Go sans expressions régulières ?

Comment puis-je trouver efficacement des modèles qui se chevauchent dans des chaînes Go sans expressions régulières ?

DDD
Libérer: 2024-12-03 22:53:10
original
570 Les gens l'ont consulté

How Can I Efficiently Find Overlapping Patterns in Go Strings Without Regular Expressions?

Surmonter les modèles qui se chevauchent dans Golang

Malgré les limites des expressions régulières dans la gestion des correspondances qui se chevauchent, il existe des alternatives pour extraire les modèles qui se chevauchent dans Golang. Bien que les expressions complexes puissent être tentantes, elles conduisent souvent à des complexités et à des inefficacités inutiles.

Une approche efficace consiste à utiliser la nature intuitive des chaînes d'index et d'une boucle for. Par exemple, pour trouver les indices du modèle "..#..", vous pouvez parcourir la chaîne d'entrée à l'aide de strings.Index et accumuler les indices dans une liste.

input := "...#...#....#.....#..#..#..#......."
idx := []int{}
j := 0
for {
    i := strings.Index(input[j:], "..#..")
    if i == -1 {
        break
    }
    fmt.Println(j)
    idx = append(idx, j+i)
    j += i+1
}
fmt.Println("Indexes:", idx)
Copier après la connexion

Cette approche simplifie le processus de correspondance, offre un meilleur contrôle sur les correspondances et améliore l'efficacité en évitant les opérations d'expression régulière inutiles. La nature simple de la boucle facilite la gestion de divers modèles et combinaisons de cordes.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal