正如我在谷歌中搜索的那样,golang 的正则表达式使用 RE2 语法,该语法不支持反向引用 (1
)。
我有一个简单的正则表达式([^aeiouy])1
,而我正在将一个 C# 库移植到 golang,将"切割"替换为"切割"。
我唯一没有完成的是正则表达式([^aeiouy])1
.
如何获得该正则表达式的可行变体?我不太了解正则表达式。
基于这个问题,似乎需要找到任何出现的"ing",其中"ing"前面的两个字符相等。
部分解决方案是:
func needsCut(s string) bool {
ix := strings.Index(s, "ing")
/* if the "ing" has less than two characters in fron of it, we can't do any cutting */
if ix < 2 {
return false
}
return s[ix-1] == s[ix-2]
}
要查看此操作的实际效果:http://play.golang.org/p/bCodqVgDEz