Maison développement back-end Golang Comment extraire des données à l'aide d'expressions régulières dans Golang ?

Comment extraire des données à l'aide d'expressions régulières dans Golang ?

Jun 01, 2024 pm 02:37 PM
正则表达式 golang Extraire des données

Les expressions régulières peuvent être utilisées pour extraire des données dans Go. Utilisez le package regexp pour traiter les expressions régulières : Compilez les expressions régulières : regexp.Compile("match pattern") Utilisez la fonction Find ou FindAll pour extraire les données : a. les premières correspondances b.r.FindAllString(str, -1) correspond à toutes les correspondances

如何在 Golang 中使用正则表达式提取数据?

Comment utiliser des expressions régulières pour extraire des données dans Golang

Regex est un outil puissant dans Golang qui peut être utilisé pour faire correspondre, rechercher, et remplacez les modèles dans les chaînes. Cet article présentera comment utiliser des expressions régulières pour extraire des données dans Golang et fournira un cas pratique.

Bases des expressions régulières

Une expression régulière consiste en un ensemble de caractères spéciaux utilisés pour correspondre à un modèle de séquences de caractères. Certains caractères spéciaux courants incluent :

  • . : correspond à n'importe quel caractère unique
  • .:匹配任意单个字符
  • *:匹配前面的字符 0 次或多次
  • +:匹配前面字符 1 次或多次
  • ?:匹配前面的字符 0 次或 1 次
  • []:匹配方括号内的任何字符
  • ^:匹配字符串的开头
  • $:匹配字符串的结尾

Go 语言中的正则表达式

Golang 使用 regexp 包来处理正则表达式。regexp 包提供了各种函数,用于匹配、搜索和替换字符串。

以下是如何在 Go 中使用 regexp 包:

import "regexp"

// 编译正则表达式
r, err := regexp.Compile("匹配模式")
if err != nil {
    // 处理错误
}
Copier après la connexion

提取数据

要从字符串中提取数据,可以使用 FindFindAll* : correspond au caractère précédent 0 fois ou plus

< code>+ : Faire correspondre le caractère précédent 1 ou plusieurs fois

? : Faire correspondre le caractère précédent 0 ou 1 fois

[ ]</ code> : correspond à tous les caractères entre crochets</li><p><code>^ : correspond au début de la chaîne$ : correspond au début de la chaîne. Fin

Expressions régulières en langage Go

Golang utilise le package regexp pour gérer les expressions régulières. Le package regexp fournit diverses fonctions pour faire correspondre, rechercher et remplacer des chaînes. Voici comment utiliser le package regexp dans Go :

str := &quot;123abc456def&quot;
r := regexp.MustCompile(&quot;[0-9]+&quot;) // 必须使用 MustCompile 来避免错误处理

matches := r.FindAllString(str, -1)
fmt.Println(matches) // 输出:[&quot;123&quot;, &quot;456&quot;]
Copier après la connexion
🎜🎜Extraction de données🎜🎜🎜Pour extraire des données d'une chaîne, vous pouvez utiliser Find ou Fonction FindAll. Ces fonctions renvoient une tranche contenant des correspondances. 🎜🎜Par exemple, pour extraire tous les nombres d'une chaîne : 🎜
import (
    &quot;fmt&quot;
    &quot;regexp&quot;
)

const jsonStr = `{
    &quot;name&quot;: &quot;Alice&quot;,
    &quot;age&quot;: 25,
    &quot;city&quot;: &quot;New York&quot;
}`

// 编译正则表达式
r := regexp.MustCompile(`&quot;(\w+)&quot;: (&quot;.*?&quot;)`)

// 匹配 JSON 字符串中的字段
matches := r.FindAllStringSubmatch(jsonStr, -1)

// 解析字段
for _, match := range matches {
    field := match[1]
    value := match[2]
    fmt.Printf(&quot;Field: %s, Value: %s\n&quot;, field, value)
}
Copier après la connexion
🎜🎜 Exemple pratique : Analyse JSON 🎜🎜🎜Voici un exemple pratique d'analyse d'une chaîne JSON à l'aide d'expressions régulières : 🎜
Field: name, Value: &quot;Alice&quot;
Field: age, Value: &quot;25&quot;
Field: city, Value: &quot;New York&quot;
Copier après la connexion
🎜🎜Sortie : 🎜🎜rrreee

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!

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

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment lire et écrire des fichiers en toute sécurité avec Golang ? Comment lire et écrire des fichiers en toute sécurité avec Golang ? Jun 06, 2024 pm 05:14 PM

Comment lire et écrire des fichiers en toute sécurité avec Golang ?

Comment configurer le pool de connexions pour la connexion à la base de données Golang ? Comment configurer le pool de connexions pour la connexion à la base de données Golang ? Jun 06, 2024 am 11:21 AM

Comment configurer le pool de connexions pour la connexion à la base de données Golang ?

Similitudes et différences entre Golang et C++ Similitudes et différences entre Golang et C++ Jun 05, 2024 pm 06:12 PM

Similitudes et différences entre Golang et C++

Quelle est la courbe d'apprentissage de l'architecture du framework Golang ? Quelle est la courbe d'apprentissage de l'architecture du framework Golang ? Jun 05, 2024 pm 06:59 PM

Quelle est la courbe d'apprentissage de l'architecture du framework Golang ?

Comment générer des éléments aléatoires à partir d'une liste dans Golang ? Comment générer des éléments aléatoires à partir d'une liste dans Golang ? Jun 05, 2024 pm 04:28 PM

Comment générer des éléments aléatoires à partir d'une liste dans Golang ?

Comparaison des avantages et des inconvénients du framework Golang Comparaison des avantages et des inconvénients du framework Golang Jun 05, 2024 pm 09:32 PM

Comparaison des avantages et des inconvénients du framework Golang

Quelles sont les meilleures pratiques pour la gestion des erreurs dans le framework Golang ? Quelles sont les meilleures pratiques pour la gestion des erreurs dans le framework Golang ? Jun 05, 2024 pm 10:39 PM

Quelles sont les meilleures pratiques pour la gestion des erreurs dans le framework Golang ?

instructions d'utilisation du document cadre Golang instructions d'utilisation du document cadre Golang Jun 05, 2024 pm 06:04 PM

instructions d'utilisation du document cadre Golang

See all articles