正则表达式在Go中不起作用

时间:2013-01-06 15:41:37

标签: regex 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)
}
// 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]

格式

任何帮助将不胜感激

2 个答案:

答案 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]$"

Demonstration