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

jrkt:

我试图返回一个数组,或切片,针对字符串针对特定正则表达式的所有匹配项。字符串是:

{city}, {state} {zip}

我想返回一个包含花括号之间所有字符串匹配项的数组。我尝试使用regexp软件包来完成此操作,但无法弄清楚如何返回我要查找的内容。这是我当前的代码:

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

但是,无论我尝试什么,每次返回的结果都是一片空白。

威克多·史翠比维(WiktorStribiżew):

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式以匹配字符串值并替换golang中的所有匹配项

如何编写正则表达式以查找XCode项目中的所有字符串

使用正则表达式查找字符串中的所有匹配项

正则表达式匹配除字符串以外的所有字符串

字符串中的所有字符必须与正则表达式匹配

使用正则表达式查找并替换字符串中模式的所有实例

正则表达式-查找具有特定字符串的所有注释

正则表达式:查找文本中的所有子字符串

正则表达式匹配所有有效doctype标签的字符串

正则表达式查找某些模式之间的所有字符串

查找所有正则表达式匹配的字符串

Vim查找并替换所有出现的正则表达式字符串

REGEX合并正则表达式字符串,然后查找除匹配项外的所有内容

使用Javascript以任意顺序使用正则表达式查找字符串中的所有匹配项

查找所有字符串的正则表达式是在Java中以$开头的正则表达式

用正则表达式查找字符串中的所有字母

正则表达式以所有顺序查找字符串

使用正则表达式查找两个字符串之间的所有匹配项

正则表达式以搜索几乎匹配除|之外的所有内容的字符串

Python-正则表达式查找字符串中的所有匹配项并替换

需要正则表达式来查找特定模式的所有子字符串

正则表达式查找带引号的字符串中的所有大括号

正则表达式:查找特定字符串后的所有数字

正则表达式-查找所有不匹配模式的字符串

正则表达式匹配 2 个字符之间的所有字符串

使用正则表达式查找字符串中的所有匹配项

Python查找所有正则表达式字符串值

使用正则表达式在字符串中查找所有出现的日期

正则表达式在长字符串中查找所有与金钱相关的值