为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Or | 在 Go Regex 中使用组

使用 Or | 在 Go Regex 中使用组

Go
眼眸繁星 2023-05-15 14:28:29
如果我有 (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) {   ... }如何“规范化”组(索引)?所以 (@) 也是第 0 组?我可以使用同名的组名吗?
查看完整描述

1 回答

?
精慕HU

TA贡献1845条经验 获得超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 ]+)})
^^^                                                  ^                    ^

请参阅正则表达式演示


查看完整回答
反对 回复 2023-05-15
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信