如何在 Go 中使用正则表达式匹配任何重复字符?
在本文中,我们将解决匹配任何重复字符的挑战在 Go 中使用正则表达式重复两次。在其他正则表达式语法(例如 JavaScript)中,此任务通常很简单,可以简单地使用反向引用来匹配重复字符。然而,Go 的原生正则表达式引擎 (re2) 不支持反向引用。
Can't Use Backreference in Go's re2
提供的 JavaScript 示例利用反向引用来捕获重复字符:
<code class="javascript">var str = "abccdeff"; var r = /([a-z]{1})/g console.log(str.match(r))</code>
由于缺乏反向引用支持,此模式在 Go 的 re2 中会失败。
Go 的 re2 的替代方案
要解决此限制,请考虑以下替代方案:
自定义循环解决方案示例
<code class="go">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 < len(str) && ch == rune(str[i+1]) { fmt.Printf("Found repeated character: %c\n", ch) } } }</code>
以上是如何在没有反向引用的情况下匹配 Go 中的重复字符?的详细内容。更多信息请关注PHP中文网其他相关文章!