由于我对re2有点新意,我试图弄清楚如何在Go中使用JS,C ++或任何PCRE样式的正向前瞻.sqlite
。
以下是我正在寻找的一些例子。
JS:
(?=regex)
的Python:
'foo bar baz'.match(/^[\s\S]+?(?=baz|$)/);
re.match('^[\s\S]+?(?=baz|$)', 'foo bar baz')
非常感谢。
答案 0 :(得分:12)
根据Syntax Documentation,此功能不受支持:
文本匹配前{p>(?=re)
re
(不支持)
此外,来自WhyRE2:
原则上,RE2不支持仅知道存在回溯解的构造。因此,不支持反向引用和环视声明。
答案 1 :(得分:5)
您可以使用更简单的正则表达式实现此目的:
re := regexp.MustCompile(`^(.+?)(?:baz)?$`)
sm := re.FindStringSubmatch("foo bar baz")
fmt.Printf("%q\n", sm)
sm[1]
将是您的匹配。游乐场:http://play.golang.org/p/Vyah7cfBlH