Maison > développement back-end > Golang > le corps du texte

Ligne exacte dans le fichier regex Golang

WBOY
Libérer: 2024-02-08 21:06:30
avant
951 Les gens l'ont consulté

Ligne exacte dans le fichier regex Golang

Golang est un langage de programmation puissant dont la fonctionnalité d'expression régulière intégrée facilite le traitement des fichiers texte. Dans Golang, les expressions régulières peuvent être utilisées pour faire correspondre et extraire des lignes spécifiques dans des fichiers. Cet article de l'éditeur PHP Xiaoxin présente aux lecteurs comment utiliser la fonction d'expression régulière de Golang pour faire correspondre avec précision les lignes d'un fichier et donne des exemples de code réels. En étudiant cet article, les lecteurs seront en mesure de mieux comprendre et d'appliquer la fonction d'expression régulière dans Golang et d'améliorer l'efficacité et la précision du traitement des fichiers.

Contenu de la question

J'ai un fichier avec le contenu suivant

# requires authentication with auth-user-pass
auth-user-pass
#auth-user-pass
# auth-user-pass
auth-user-passwd
Copier après la connexion

Existe-t-il un moyen de faire en sorte que l'expression régulière corresponde uniquement à la deuxième ligne avec Golang ?

J'ai essayé d'utiliser le code suivant mais il renvoie une tranche vide

package main

import (
    "fmt"
    "os"
    "regexp"
)

func main() {
    bytes, err := os.readfile("file.txt")
    if err != nil {
        panic(err)
    }

    re, _ := regexp.compile(`^auth-user-pass$`)
    matches := re.findallstring(string(bytes), -1)
    fmt.println(matches)
}
Copier après la connexion
$ go run main.go
[]
Copier après la connexion


Bonne réponse


Votre chaîne contient plusieurs lignes, vous devez donc activer le mode multiligne (en utilisant le drapeau m) :

Voici un exemple simple :

package main

import (
    "fmt"
    "regexp"
)

func main() {
    var str = `# Requires authentication with auth-user-pass
auth-user-pass
#auth-user-pass
# auth-user-pass
auth-user-passwd`

    re, _ := regexp.Compile(`(?m)^auth-user-pass$`)
    matches := re.FindAllString(str, -1)
    fmt.Println(matches)
}
Copier après la connexion

Vous pouvez essayer cet extrait de code sur : https://www.php.cn/link/f4f4a06c589ea53edf4a9b18e70bbd40.

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:stackoverflow.com
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!