我想使用以下代码查找字符串中的所有数字:
re:=regexp.MustCompile("[0-9]+")
fmt.Println(re.FindAllString("abc123def", 0))
我还尝试向正则表达式添加定界符,使用正数作为 FindAllString
的第二个参数,使用纯数字字符串(如“123”)作为第一个参数...
但输出总是[]
我似乎错过了一些关于正则表达式在 Go 中如何工作的东西,但我无法全神贯注。 [0-9]+
不是有效的表达式吗?
最佳答案
问题出在您的第二个整数参数上。引用自 regex
的包文档:
These routines take an extra integer argument, n; if n >= 0, the function returns at most n matches/submatches.
您传递 0
因此最多返回 0 个匹配项;即:无(不是很有用)。
尝试传递 -1
以表明您想要全部。
例子:
re := regexp.MustCompile("[0-9]+")
fmt.Println(re.FindAllString("abc123def987asdf", -1))
输出:
[123 987]
在 Go Playground 上试试.
关于regex - 使用 Golang 正则表达式在字符串中查找数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32987215/