这play清楚地表明了我的困境。
最终我试图将一个不守规矩的字符串分成单词。给我" 2015"是一个词,所以" $ 100"但如果输入是"一个。 2wo,(三)"我想要[One 2wo三]。因为go不允许使用Unicode识别正则表达式,我认为我首先要删除所有"垃圾字符"然后使用strings.Fields()
问题在于剥离了任何数字:
reg := regexp.MustCompile(`[\[\](){}"?!,-:;,']`)
fmt.Println(reg.ReplaceAllString("one 1 zer0", ""))
// outputs "one zer" when I'd expect "one 1 zer0" :(
答案 0 :(得分:4)
[,-:]
匹配范围,
- :
中的所有字符。该范围恰好包含所有ASCII数字(请参阅ascii(7))。将-
放在最后:
reg := regexp.MustCompile(`[\[\](){}"?!,:;,'-]`)