Heim  >  Artikel  >  Backend-Entwicklung  >  Genaue Zeile in der Golang-Regex-Datei

Genaue Zeile in der Golang-Regex-Datei

WBOY
WBOYnach vorne
2024-02-08 21:06:30939Durchsuche

Genaue Zeile in der Golang-Regex-Datei

Golang ist eine leistungsstarke Programmiersprache, deren integrierte Funktionalität für reguläre Ausdrücke eine bequeme Verarbeitung von Textdateien bietet. In Golang können reguläre Ausdrücke verwendet werden, um bestimmte Zeilen in Dateien abzugleichen und zu extrahieren. Dieser Artikel des PHP-Herausgebers Xiaoxin führt Leser in die Verwendung der regulären Ausdrucksfunktion von Golang ein, um Zeilen in einer Datei genau abzugleichen, und gibt tatsächliche Codebeispiele. Durch das Studium dieses Artikels können die Leser die reguläre Ausdrucksfunktion in Golang besser verstehen und anwenden und die Effizienz und Genauigkeit der Dateiverarbeitung verbessern.

Frageninhalt

Ich habe eine Datei mit folgendem Inhalt

# requires authentication with auth-user-pass
auth-user-pass
#auth-user-pass
# auth-user-pass
auth-user-passwd

Gibt es eine Möglichkeit, dafür zu sorgen, dass der reguläre Ausdruck nur mit der zweiten Zeile mit Golang übereinstimmt?

Ich habe versucht, den folgenden Code zu verwenden, aber er gibt ein leeres Slice zurück

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
[]

Richtige Antwort


Ihre Zeichenfolge enthält mehrere Zeilen, daher sollten Sie den Mehrzeilenmodus aktivieren (mithilfe der m-Flagge):

Hier ist ein einfaches Beispiel:

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

Sie können dieses Code-Snippet ausprobieren unter: https://www.php.cn/link/f4f4a06c589ea53edf4a9b18e70bbd40.

Das obige ist der detaillierte Inhalt vonGenaue Zeile in der Golang-Regex-Datei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen