2015-10-07 137 views
4

我想用下面的代碼找到字符串中的所有號碼串號:查找使用Golang正則表達式

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

我也嘗試添加分隔符正則表達式,用正數作爲第二個參數爲FindAllString,使用數字只有像「123」作爲第一個參數...

字符串,但輸出始終[]

我好像錯過了什麼有關如何正則表達式去工作,但不能換我的頭周圍。 [0-9]+不是一個有效的表達式嗎?

回答

16

問題出在你的第二個整數參數。從包文檔regex引用:

這些例程需要一個額外的整數參數n;如果n> = 0,該函數最多返回n個匹配/子匹配。

您通過0,最多返回0個匹配項;那就是:(不是很有用)。

嘗試通過-1表明你想要所有。

實施例:

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

輸出:

[123 987] 

嘗試在Go Playground

+0

哇,我確定我至少用'1'試過了它,但看起來我有另一個錯誤,然後再也不能再生成了。 '-1'很好,謝謝 –