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

标签 regex go backreference

正如我在 Google 中搜索的那样,golang 的正则表达式使用不支持反向引用的 RE2 语法 (\1)。

我有一个简单的正则表达式 ([^aeiouy])\1,同时我将一个 C# 库移植到 golang,将“cutting”替换为“cut”。

我唯一没有完成的是正则表达式 ([^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

关于regex - 如何将正则表达式转换为不支持反向引用的 golang 正则表达式风格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27634064/

相关文章:

go - 从DDD的角度来看,如何处理DB特定类型?

go - 为什么 go package code 没有 body?

java - Jakarta Regexp 1.5 反向引用?

python - 正则表达式字符串替换: omit comma if backref is empty

java - 正则表达式从简单的 JSON 对象中提取值

javascript - 匹配从 tom 开始的字符串 "tomorrow"的任何部分

ios - 用于查找和替换数字的正则表达式

javascript - 从 Javascript 中的字符串获取版本号?

go - 如何用数字替换元音

javascript - 正则表达式反向引用,我缺少什么?