首頁 > 後端開發 > Golang > 主體

Golang正規表示式檔案中的精確行

WBOY
發布: 2024-02-08 21:06:30
轉載
950 人瀏覽過

Golang正規表示式檔案中的精確行

Golang是一種強大的程式語言,其內建的正規表示式功能為處理文字檔案提供了便利。在Golang中,使用正規表示式可以實現對檔案中特定行的匹配和提取。本文由php小編小新為讀者介紹如何使用Golang的正規表示式功能精確匹配文件中的行,並給出了實際的程式碼範例。透過學習本文,讀者將能夠更好地理解和應用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
[]
登入後複製


正確答案


您的字串包含多行,因此您應該開啟多行模式(使用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://www.php.cn/link/f4f4a06c589ea53edf4a9b18e70bbd40.

以上是Golang正規表示式檔案中的精確行的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!