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中文網其他相關文章!