由于我对re2有点陌生,我试图弄清楚如何在Go(?=regex)
中使用像 JS、C++ 或任何 PCRE 样式这样的正向前瞻。
这是我正在寻找的一些示例。
JS:
'foo bar baz'.match(/^[\s\S]+?(?=baz|$)/);
Python:
re.match('^[\s\S]+?(?=baz|$)', 'foo bar baz')
- 注意:两个例子都匹配
'foo bar '
非常感谢。
您可以使用更简单的正则表达式来实现这一点:
re := regexp.MustCompile(`^(.+?)(?:baz)?$`)
sm := re.FindStringSubmatch("foo bar baz")
fmt.Printf("%q\n", sm)
sm[1]
将是你的对手。游乐场:http ://play.golang.org/p/Vyah7cfBlH