**众所周知,golang的正则表达式是不支持反向引用的,有没有谁搞过这一块?有没有一个比较好的替代方案?**
我晕,你自己明明写着:反向引用。应该是你自己先去了解什么叫做反向引用(back references)。不清楚可以看看《[正则表达式入门经典].(美)瓦特》。
你想要的是:向后查找?https://code.google.com/p/re2/wiki/Syntax 看看这个吧。
#4
更多评论
谁说不支持反向引用?还众所周知?
package main
import (
"regexp"
"fmt"
)
func main() {
re := regexp.MustCompile("([0-9]+)年([0-9]+)月([0-9]+)日")
fmt.Println(re.ReplaceAllString("2013年9月30日", "$1-$2-$3"))
}
输出结果:
2013-9-30
注:一般的语言用的是 \1 这种形式反向引用
#1