如何在 Go 中使用正则表达式匹配任意重复字符?
在本文中,我们将解决匹配任意重复字符的挑战在 Go 中使用正则表达式重复两次。在其他正则表达式语法(例如 JavaScript)中,此任务通常很简单,其中可以简单地使用反向引用来匹配重复字符。然而,Go 的原生正则表达式引擎 (re2) 不支持反向引用。
Can't Use Backreference in Go's re2
提供的 JavaScript 示例利用反向引用来捕获重复字符:
var str = "abccdeff";
var r = /([a-z]{1})\1/g
console.log(str.match(r))
由于缺乏反向引用支持,此模式在 Go 的 re2 中会失败。
Go 的 re2 的替代品
要解决此限制,请考虑以下替代方案:
示例自定义循环解决方案
package main
import (
"fmt"
"regexp"
)
func main() {
str := "abccdeff"
// Find and print repeating characters without using regex
for i, ch := range str {
if i 1
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3