我想用以下代码查找字符串中的所有数字:
re:=regexp.MustCompile("[0-9]+")
fmt.Println(re.FindAllString("abc123def", 0))
我还try 向正则表达式添加分隔符,使用正数作为FindAllString
的第二个参数,使用纯数字字符串(如"123")作为第一个参数……
但输出始终为[]
我似乎忽略了正则表达式在围棋中是如何工作的,但我无法理解它.[0-9]+
不是有效的表达式吗?
我想用以下代码查找字符串中的所有数字:
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号公路上试试吧.