Tutoriel avancé sur les expressions régulières en langage Go : Comment utiliser la capture de groupe
Les expressions régulières jouent un rôle extrêmement important dans le traitement de texte, et en langage Go, le package regexp est fourni dans la bibliothèque standard pour le traitement des expressions régulières Correspondance et remplacement. Dans le didacticiel précédent, nous avons appris la syntaxe de base des expressions régulières et comment effectuer des opérations simples de correspondance et de remplacement. Ce didacticiel présentera plus en détail comment utiliser la capture de groupe pour faciliter un traitement plus flexible des résultats de correspondance.
package main import ( "fmt" "regexp" ) func main() { pattern := `(d{3})-(d{4})` text := "我的电话号码是123-4567,你的电话号码是987-6543。" re := regexp.MustCompile(pattern) result := re.FindAllStringSubmatch(text, -1) for _, match := range result { fmt.Println("完整匹配结果:", match[0]) fmt.Println("前三个数字:", match[1]) fmt.Println("后四个数字:", match[2]) } }
Le résultat de sortie est :
完整匹配结果: 123-4567 前三个数字: 123 后四个数字: 4567 完整匹配结果: 987-6543 前三个数字: 987 后四个数字: 6543
En utilisant des parenthèses pour regrouper, nous pouvons facilement obtenir les résultats correspondants. Le contenu de chaque groupe.
(?P<name>pattern)
,我们可以为某个分组指定一个名称name
. Par exemple, nous pouvons attribuer des noms au regroupement des trois premiers nombres et des quatre derniers nombres comme ceci : package main import ( "fmt" "regexp" ) func main() { pattern := `(?P<area>d{3})-(?P<number>d{4})` text := "我的电话号码是123-4567,你的电话号码是987-6543。" re := regexp.MustCompile(pattern) result := re.FindAllStringSubmatch(text, -1) for _, match := range result { fmt.Println("完整匹配结果:", match[0]) fmt.Println("前三个数字:", match[1]) fmt.Println("后四个数字:", match[2]) fmt.Println("区号:", match[re.SubexpIndex("area")]) fmt.Println("号码:", match[re.SubexpIndex("number")]) } }
Le résultat est :
完整匹配结果: 123-4567 前三个数字: 123 后四个数字: 4567 区号: 123 号码: 4567 完整匹配结果: 987-6543 前三个数字: 987 后四个数字: 6543 区号: 987 号码: 6543
En utilisant des groupes nommés, vous pouvez référencer des groupes non seulement par des nombres, mais aussi par numéros Groupes de référence par nom, rendant le code plus lisible et maintenable.
Résumé
Cet article explique comment utiliser les expressions régulières pour la capture de groupe en langage Go. En utilisant des parenthèses pour le regroupement, nous pouvons facilement obtenir le contenu de chaque groupe dans les résultats de correspondance. Dans le même temps, nous avons également appris à utiliser des groupes nommés pour référencer des groupes afin de rendre le code plus lisible et maintenable. J'espère que ce tutoriel vous aidera à comprendre la capture de groupe d'expressions régulières.
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!