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

Genaue Zeile in der Golang-Regex-Datei

WBOY
Freigeben: 2024-02-08 21:06:30
nach vorne
982 Leute haben es durchsucht

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
Nach dem Login kopieren

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


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)
}
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage