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

re:=regexp.MustCompile("[0-9]+")
fmt.Println(re.FindAllString("abc123def", 0))

我还try 向正则表达式添加分隔符,使用正数作为FindAllString的第二个参数,使用纯数字字符串(如"123")作为第一个参数……

但输出始终为[]

我似乎忽略了正则表达式在围棋中是如何工作的,但我无法理解它.[0-9]+不是有效的表达式吗?

推荐答案

问题出在您的第二个整数参数上.引用regex的套餐单据:

These routines take an extra integer argument, n; if n >= 0, the function returns at most n matches/submatches.

您通过0,因此最多返回0个匹配项;也就是说:none(不是很有用).

试着超过-1表示你想要全部.

例子:

re := regexp.MustCompile("[0-9]+")
fmt.Println(re.FindAllString("abc123def987asdf", -1))

输出:

[123 987]

Go Playground号公路上试试吧.

Go相关问答推荐

按键值排序字符串- Golang

GORM Find方法中缺少字段

如何解析Go-Gin多部分请求中的 struct 切片

这是go语言gin提供的关于TypeEngine和RouterGroup的问题

Golang:访问any类型泛型上的字段

在多个 struct 体中重用 Go 中的函数

在两个单独的速率受限端点之间同步请求

转换朴素递归硬币问题时的记忆错误

如何使用 Docker 引擎 SDK 和 Golang 运行 docker 挂载卷

grpc-gateway:重定向与定义不匹配(原始文件)

使用innerxml在 Go 中编码 XML 是否仅适用于某些类型?

如何将一片十六进制字节转换为整数

如何使用特定的 Go 版本运行 govulncheck?

函数超时和 goroutine 泄漏

转到文本/模板模板:如何根据模板本身的值数组判断值?

跟踪长时间运行的任务的进度 - 正确的方法

从 Go struct 中提取标签作为 reflect.Value

正确编码 JWT

如何在测试中传递用户名和密码等参数

Go:为一组单个结果实现 ManyDecode