查找与正则表达式golang匹配的所有字符串
我试图返回一个数组或切片,针对字符串针对特定正则表达式的所有匹配项。字符串是:
{city}, {state} {zip}我想返回一个花括号之间所有字符串都匹配的数组。我尝试使用regexp软件包来完成此操作,但无法弄清楚如何返回我要查找的内容。这是我当前的代码:
r := regexp.MustCompile("/({[^}]*})/")matches := r.FindAllString("{city}, {state} {zip}", -1)
但是,无论我尝试什么,每次返回的结果都是一片空白。
回答:
首先,您不需要正则表达式定界符。其次,使用原始字符串文字定义一个正则表达式模式是个好主意,您只需要使用1个反斜杠即可转义正则表达式元字符。第三,捕获组是只需要如果你需要得到的值不{和},因此,你可以删除它得到{city},{state}和{zip}。
您可以FindAllString用来获取所有匹配项:
r := regexp.MustCompile(`{[^{}]*}`)matches := r.FindAllString("{city}, {state} {zip}", -1)
请参阅Go演示。
要仅获取大括号之间的部分,请使用FindAllStringSubmatch包含捕获括号的模式{([^{}]*)}:
r := regexp.MustCompile(`{([^{}]*)}`)matches := r.FindAllStringSubmatch("{city}, {state} {zip}", -1)
for _, v := range matches {
    fmt.Println(v[1])
}
请参阅此Go演示。
{-文字{字符([^{}]*)-捕获组匹配任何0以上(由于*比其他量词)字符{和}([^...]是一个否定的字符类匹配任何字符但之间指定的一个(或多个)[^和])}-文字}字符
以上是 查找与正则表达式golang匹配的所有字符串 的全部内容, 来源链接: utcz.com/qa/428140.html

