Go 中否定 Lookbehind:解
在 Go 中,由於效能問題,不支援否定 Lookbehind 斷言。為了克服這項挑戰,您可以探索替代方法來實現相同的功能。
原始正規表示式旨在提取不以 @、# 或 / 字元開頭的命令。這裡有兩個選項:
1。否定字元集:
刪除否定後向尋找並將其替換為否定字元集。
\b[^@#/]\w.*
如果允許出現在字串開頭,則用^
(?:^|[^@#\/])\b\w.*
2.濾波函數:
實現過濾函數,刪除以特定字元開頭的單字。func Filter(vs []string, f func(string) bool) []string { vsf := make([]string, 0) for _, v := range vs { if f(v) { vsf = append(vsf, v) } } return vsf }在 Process 函數中使用濾波函數來處理輸入文字。
func Process(inp string) string { t := strings.Split(inp, " ") t = Filter(t, func(x string) bool { return strings.Index(x, "#") != 0 && strings.Index(x, "@") != 0 && strings.Index(x, "/") != 0 }) return strings.Join(t, " ") }這些解決方案提供了 Go 中負向後查找的替代方案,確保高效的正規表示式處理。
以上是如何在 Go 正規表示式中實現負向後查找功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!