Maison >développement back-end >Golang >L'expression régulière Golang divise la chaîne en fonction de mots-clés
Éditeur PHP Apple vous présente une puissante technique de traitement de chaînes : l'expression régulière golang pour diviser les chaînes en fonction de mots-clés. En développement, nous devons souvent diviser la chaîne en fonction d'un certain mot-clé afin de poursuivre le traitement des données. En utilisant les expressions régulières de Golang, nous pouvons facilement implémenter cette fonction et améliorer l'efficacité du développement. Cet article vous présentera en détail comment utiliser les expressions régulières Golang et comment diviser les chaînes en fonction de mots-clés, vous aidant ainsi à traiter les chaînes de manière plus flexible dans le développement quotidien. Explorons ensemble !
Voici ma chaîne, divisée par mots-clés après findstudentbyid
现在,我将根据 find
单词之前的 find
单词之前和 by
和 by
、id
.
Donc, le modèle d'expression régulière de Golang est `(?i)(^find{1})(w+)(by{1})(w+)`
J'essaie de diviser ce mot-clé findstudentbyid
mais j'ai du mal à trouver les résultats exacts que je trouve.
Mon résultat attendu est [通过 id 查找学生]
ou
find student by id
Mais je ne peux pas le faire. J'ai essayé ce code golang
package main import ( "fmt" "regexp" ) func main() { txt := "findstudentbyid" re := regexp.MustCompile(`(?i)(^find{1})(\w+)(by{1})(\w+)`) split := re.Split(txt, -1) set := []string{} for i := range split { set = append(set, split[i]) } fmt.Println(set) }
Je ne pense pas que Regexp.Split()
soit la bonne solution pour votre situation, selon la documentation :
Je pense que ce dont vous avez besoin est de trouver le sous-match (comme find
、student
、by
和 id
) :
Vous pouvez donc utiliser Regexp.FindStringSubmatch()
comme ceci :
fmt.Println("result: ", re.FindStringSubmatch(txt)) result: [findstudentbyid find student by id]
Je pense aussi que vous pouvez simplifier l'expression régulière, mais n'oubliez pas de la mettre entre parenthèses pour gérer les sous-correspondances, comme indiqué dans les commentaires :
re := regexp.MustCompile(`(find)(.+)(by)(.+)`)
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!