如果我有 (a)|(b) 也可以用 0 為 b 啟動組,那么在 Go Regex 中有沒有辦法?我該怎么做?re := regexp.MustCompile(
`<(\$)([a-zA-Z0-9]+):([a-zA-Z0-9]+):([a-zA-Z0-9]+)>|{(@)([a-zA-Z0-9 ]+)}`)并迭代for _, v := range re.FindAllSubmatchIndex([]byte(str), -1) {
...
}如何“規(guī)范化”組(索引)?所以 (@) 也是第 0 組?我可以使用同名的組名嗎?
1 回答

精慕HU
TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊
Go regex engine 是RE2,不幸的是它不支持您正在尋找的功能,即分支重置組。
如果您一定需要,可以使用 Go 的 PCRE 庫端口。例如,這是一個package pcre
圖書館。添加后,您可以使用
(?|<(\$)([a-zA-Z0-9]+):([a-zA-Z0-9]+):([a-zA-Z0-9]+)>|{(@)([a-zA-Z0-9?]+)}) ^^^??????????????????????????????????????????????????^????????????????????^
請參閱正則表達(dá)式演示。
- 1 回答
- 0 關(guān)注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消