首先,您不需要正则表达式定界符。其次,使用原始字符串文字定义一个正则表达式模式是个好主意,您只需要使用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以上(由于*
比其他量词)字符{
和}
([^...]
是一个否定的字符类匹配任何字符但之间指定的一个(或多个)[^
和]
)}
-文字}
字符
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)