猿问

文件中的 Golang 正则表达式精确行

我有一个包含以下内容的文件


# Requires authentication with auth-user-pass

auth-user-pass

#auth-user-pass

# auth-user-pass

auth-user-passwd

有没有办法让正则表达式只匹配第二行与 Golang?


我尝试使用以下代码但它返回空切片


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

[]


缥缈止盈
浏览 104回答 1
1回答

心有法竹

您的字符串包含多行,因此您应该打开多行模式(带有m标志):这是一个简单的例子:package mainimport (    "fmt"    "regexp")func main() {    var str = `# Requires authentication with auth-user-passauth-user-pass#auth-user-pass# auth-user-passauth-user-passwd`    re, _ := regexp.Compile(`(?m)^auth-user-pass$`)    matches := re.FindAllString(str, -1)    fmt.Println(matches)}您可以在https://play.golang.com/p/6au1_K2ImBt上尝试此片段。
随时随地看视频慕课网APP

相关分类

Go
我要回答