如何将正则表达式转换为不支持反向引用的 golang 正则表达式风格



正如我在谷歌中搜索的那样,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

最新更新