Regex 如何使用正则表达式在golang中获得括号内的所有内容

Regex 如何使用正则表达式在golang中获得括号内的所有内容,regex,go,Regex,Go,我试图在golang正则表达式中获取以下sql语句外括号内的所有内容 Categories (// = outside bracket PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) )//=outside bracket 如何使用正则表达式仅识别外括号并返回外括号之间的所有内容?您只需找到第一个(,然后将所有字符匹配到最后一个) `(?s)

我试图在golang正则表达式中获取以下sql语句外括号内的所有内容

Categories
(// = outside bracket
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)//=outside bracket

如何使用正则表达式仅识别外括号并返回外括号之间的所有内容?

您只需找到第一个
,然后将所有字符匹配到最后一个

`(?s)\((.*)\)`
详细信息

  • (?s)
    -允许
    匹配任何字符,包括换行符
  • \(
    -文字
    字符)
  • (.*)
    -子匹配1捕获任何零个或多个字符
  • \)
    -文字符号
见:


也许
`s\(.*)`
就是您所需要的。谢谢它的工作,您现在如何删除外括号
[(…)]
为什么要删除它们?只需访问第一个子比赛。有道理,谢谢!
package main

import (
    "fmt"
    "regexp"
)

func main() {
    s := `Categories
(// = outside bracket
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)//=outside bracket`
    re := regexp.MustCompile(`(?s)\((.*)\)`)

    m := re.FindAllStringSubmatch(s,-1)
    fmt.Printf("Capture value: %s", m[0][1])
}