首頁 > 後端開發 > Golang > 為什麼我的Go正規表示式匹配失敗,而Python的卻成功?

為什麼我的Go正規表示式匹配失敗,而Python的卻成功?

Susan Sarandon
發布: 2024-11-26 03:18:10
原創
253 人瀏覽過

Why Does My Go Regex Match Fail, But Python's Succeeds?

Go 中的正規表示式比對失敗

使用者遇到 Go 中正規表示式模式無法比對的問題。程式碼片段嘗試驗證「parameter=0xFF」形式的字串,遵循正規表示式模式「^.=b0xA-Fb$」。但是,MatchString() 函數會傳回 false 和 nil 錯誤,這與在 Python 中匹配成功不同。

偵錯 Go 程式碼

要解決此問題,使用者應該考慮使用原始字串文字作為模式字串。在Go 中,原始字串文字用反引號'`' 括起來,而不是標準引號'"'。此約定可防止轉義字元'' 在字串中被解釋。

修正的Go 程式碼

使用原始字串文字修正的Go代碼是:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    var a string = "parameter=0xFF"
    var regex string = `^.+=\b0x[A-F][A-F]\b$`
    result, err := regexp.MatchString(regex, a)
    fmt.Println(result, err)
}
登入後複製

預期輸出

使用原始字串文字後,預期輸出為:

true <nil>
登入後複製

這表示輸入字符串符合預期的格式。

以上是為什麼我的Go正規表示式匹配失敗,而Python的卻成功?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板