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

使用 Go 正则表达式中的命名匹配

使用 Go 正则表达式中的命名匹配

Go
明月笑刀无情 2021-07-09 14:07:27
我来自 Python,所以我可能只是没有以正确的方式看待这个问题。我想创建一个相当复杂的正则表达式,并能够访问按名称匹配的字段。我似乎找不到一个很好的例子。我设法得到的最接近的是:package mainimport (  "fmt"  "regexp")var myExp = regexp.MustCompile(`(?P<first>\d+)\.(\d+).(?P<second>\d+)`)func main() {  fmt.Printf("%+v", myExp.FindStringSubmatch("1234.5678.9"))  match := myExp.FindStringSubmatch("1234.5678.9")    for i, name := range myExp.SubexpNames() {        fmt.Printf("'%s'\t %d -> %s\n", name, i, match[i])    }    //fmt.Printf("by name: %s %s\n", match["first"], match["second"])}注释掉的行是我期望在 Python 中访问命名字段的方式。在 go 中执行此操作的等效方法是什么?或者,如果我需要将匹配项转换为地图,那么制作然后访问地图的最惯用的方法是什么?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 313 浏览
慕课专栏
更多

添加回答

举报

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