我有一個包含以下內容的文件# Requires authentication with auth-user-passauth-user-pass#auth-user-pass# auth-user-passauth-user-passwd有沒有辦法讓正則表達式只匹配第二行與 Golang?我嘗試使用以下代碼但它返回空切片package mainimport ( "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[]
1 回答

心有法竹
TA貢獻1866條經驗 獲得超5個贊
您的字符串包含多行,因此您應該打開多行模式(帶有m
標志):
這是一個簡單的例子:
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)
}
您可以在https://play.golang.com/p/6au1_K2ImBt上嘗試此片段。
- 1 回答
- 0 關注
- 119 瀏覽
添加回答
舉報
0/150
提交
取消