也許我錯過了關于 go 的一些非?;镜臇|西regexp.FindStringSubmatch()。我想用字符串后面的所有數字捕獲組,"Serial Number: "但得到意外輸出。我的代碼如下:package mainimport "fmt"import "regexp"func main() { x := "Serial Number: 12334" r := regexp.MustCompile(`(\d+)`) res := r.FindStringSubmatch(x) for i,val := range res { fmt.Printf("entry %d:%s\n", i,val) }}輸出是:entry 0:12334entry 1:12334我更熟悉 python 的分組,這看起來很簡單:>>> re.search('(\d+)', "Serial Number: 12344").groups()[0]'12344'我怎樣才能讓分組在 go 中工作?謝謝
1 回答

夢里花落0921
TA貢獻1772條經驗 獲得超6個贊
來自Regexp.FindStringSubmatch
:
FindStringSubmatch
返回一段字符串,其中包含 s 中正則表達式最左邊匹配項的文本以及匹配項
所以:
第一個條目是匹配的內容:'
12334
'(最左邊的匹配)第二個條目是捕獲的組:'
12334
'
另一個例子:
re := regexp.MustCompile("a(x*)b(y|z)c") fmt.Printf("%q\n", re.FindStringSubmatch("-axxxbyc-"))
那將打?。?/p>
最左邊的匹配:
"axxxbyc"
兩個被捕獲的組:
"xxx" "y"
- 1 回答
- 0 關注
- 401 瀏覽
添加回答
舉報
0/150
提交
取消