我想用以下代码查找字符串中的所有数字:
re:=regexp.MustCompile("[0-9]+") fmt.Println(re.FindAllString("abc123def", 0))
我还尝试将定界符添加到正则表达式,使用正数作为的第二个参数FindAllString,使用仅数字字符串,例如“ 123”作为第一个参数…
FindAllString
但是输出总是 []
[]
我似乎想念一下正则表达式在Go中的工作原理,但是无法绕开它。这[0-9]+不是有效的表达方式吗?
[0-9]+
问题出在你的第二个整数参数上。引用以下软件包的文档regex:
regex
这些例程使用一个额外的整数参数n;如果n> = 0,则该函数最多返回n个匹配项/子匹配项。
您通过了,0因此最多将返回0个匹配;那就是: 没有 (不是真的有用)。
0
尝试通过-1以表明您想要全部。
-1
例:
re := regexp.MustCompile("[0-9]+") fmt.Println(re.FindAllString("abc123def987asdf", -1))
输出:
[123 987]
在Go Playground上尝试一下。