regex - 使用 Golang 正则表达式在字符串中查找数字

标签 regex go

我想使用以下代码查找字符串中的所有数字:

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/

相关文章:

go - 什么是 go.mod.tmp 文件?

go - 通过匿名结构键进行映射查找

http - net.Dialer#KeepAlive和http.Transport#IdleTimeout有什么区别?

python - 查找以字母 "CU"开头的所有字符串并返回完整字符串

javascript - 如何在我的正则表达式中允许 `.`?

c++ - 为什么这种不匹配模式的性能会随着搜索空间的大小而变化?

google-app-engine - 在 golang ( appengine ) 上无填充的 Base64 编码/解码

algorithm - html模板中的golang乘法算法

Javascript 考虑输入 : negative lookbehind 中的反斜杠

python - 简单的 python 正则表达式,冒号后匹配