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