相关疑难解决方法(0)

正则表达式使用Go编程语言查找命名捕获组

我正在寻找一个正则表达式来找到(其他)正则表达式字符串中的命名捕获组.

示例:我想查找(?P<country>m((a|b).+)n),(?P<city>.+)(?P<street>(5|6)\. .+)在以下正则表达式中:

/(?P<country>m((a|b).+)n)/(?P<city>.+)/(?P<street>(5|6)\. .+)
Run Code Online (Sandbox Code Playgroud)

我尝试了以下正则表达式来查找命名的捕获组:

var subGroups string = `(\(.+\))*?`
var prefixedSubGroups string = `.+` + subGroups
var postfixedSubGroups string = subGroups + `.+`
var surroundedSubGroups string = `.+` + subGroups + `.+`
var capturingGroupNameRegex *regexp.RichRegexp = regexp.MustCompile(
    `(?U)` + 
    `\(\?P<.+>` + 
    `(` +   prefixedSubGroups + `|` + postfixedSubGroups + `|` + surroundedSubGroups + `)` + 
    `\)`) 
Run Code Online (Sandbox Code Playgroud)

?U使贪婪量词(+*)非贪婪,非贪婪量词(*?)贪婪.Go正则表达式文档中的详细信息.

但它不起作用,因为括号不正确匹配.

regex go

7
推荐指数
1
解决办法
1647
查看次数

标签 统计

go ×1

regex ×1