如何在 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中文網其他相關文章!