首先,您不需要正则表达式定界符。其次,使用原始字符串文字定义一个正则表达式模式是个好主意,您只需要使用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以上(由于*
比其他量词)字符{和}
([^...]
是一个否定的字符类匹配任何字符但之间指定的一个(或多个)[^
和]
)}
-文字}
字符



