如何在 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