首页  >  文章  >  后端开发  >  为什么我的Go正则表达式匹配失败,而Python的却成功?

为什么我的Go正则表达式匹配失败,而Python的却成功?

Susan Sarandon
Susan Sarandon原创
2024-11-26 03:18:10193浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn