找到与正则表达式golang的所有字符串匹配

问题描述:

我想返回一个数组或切片与特定的正则表达式针对字符串的所有匹配。该字符串是:找到与正则表达式golang的所有字符串匹配

{city}, {state} {zip} 

我想用花括号之间的字符串的所有比赛返回数组。我曾尝试使用regexp包完成此操作,但无法弄清楚如何返回我正在查找的内容。这是我当前的代码:

r := regexp.MustCompile("/({[^}]*})/") 
matches := r.FindAllString("{city}, {state} {zip}", -1) 

但是,所有的返回是一个空的切片,每次不管我怎么努力。

+1

尝试'R:= regexp.MustCompile(\'\ {[^ \}] * \} \')' –

+0

嗯,这是简单。谢谢! –

首先,你不需要正则表达式分隔符。其次,使用原始字符串文字来定义一个正则表达式模式是一个好主意,您只需要使用1个反斜杠来转义正则表达式元字符。第三,只有当您需要获取没有{}的值时,捕获组才是必需的,因此,您可以删除它以获得{city},{state}{zip}

您可以使用

r := regexp.MustCompile(`{[^}]*}`) 

Go demo