我正在尝试创建一个匹配字符串的正则表达式,如果该字符串连续有 3 个或更多重复字符(例如 aaaaaa、testtttttt、otttttter)。
我已经尝试过以下方法:
regexp.Compile("[A-Za-z0-9]{3,}")
regexp.Compile("(.){3,}")
regexp.Compile("(.)\\1{3,}")
哪个匹配any连续 3 个字符,但不是连续的角色...我哪里出错了?
你所要求的无法完成true正则表达式,您需要的是(不规则的)反向引用。虽然许多正则表达式引擎实现了它们,但 Go 使用的 RE2 却没有。 RE2 是一个快速正则表达式引擎,可保证线性时间字符串处理,但目前还没有已知的方法可以如此高效地实现反向引用。 (看https://swtch.com/~rsc/regexp/了解更多信息。)
为了解决您的问题,您可能需要搜索其他一些正则表达式库。我相信可以找到 PCRE 的绑定,但我没有从中获得个人经验。
另一种方法是手动解析字符串,而不使用(ir)正则表达式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)