请原谅我是一名正则表达式的业余爱好者,但我真的很困惑为什么这段代码不能在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)
}
// output: false <nil>
这似乎在python中运行正常
import re
p = re.compile(r"^.+=\b0x[A-F][A-F]\b$")
m = p.match("parameter=0xFF")
if m is not None:
print m.group()
// output: parameter=0xFF
我想要做的就是匹配输入是否采用<anything>=0x[A-F][A-F]
任何帮助将不胜感激
答案 0 :(得分:8)
您是否尝试过使用原始字符串文字(使用后引号而不是引号)? 像这样:
var regex string = `^.+=\b0x[A-F][A-F]\b$`
答案 1 :(得分:5)
您必须逃避interpreted literal strings中的\
:
var regex string = "^.+=\\b0x[A-F][A-F]\\b$"
但实际上\b
(单词边界)在你的表达中似乎毫无用处。
没有它们就可以了:
var regex string = "^.+=0x[A-F][A-F]$"