Maison  >  Article  >  développement back-end  >  Ligne exacte dans le fichier regex Golang

Ligne exacte dans le fichier regex Golang

WBOY
WBOYavant
2024-02-08 21:06:30939parcourir

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

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)
}
$ go run main.go
[]

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)
}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer