我试图在golang正则表达式中的以下sql语句的外括号内获取所有内容。
Categories
(// = outside bracket
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)//=outside bracket
我如何使用正则表达式来识别外部括号并返回外部括号之间的所有内容?
答案 0 :(得分:2)
您只需找到第一个(
,然后匹配任何字符,直到最后)
`(?s)\((.*)\)`
<强>详情:
(?s)
- 允许.
匹配任何字符,包括换行符\(
- 文字(
字符(.*)
- 子匹配1捕获任何零个或多个字符\)
- 文字)
符号。请参阅Go demo:
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])
}