为什么在 regex.ReplaceAllString() 中删除数字

这部剧清楚地表明了我的困境。


最终,我试图将不守规矩的字符串拆分为单词。对我来说,“2015”是一个词,“$100”也是一个词,但如果输入是“One.2wo, (three)”,我想要 [One 2wo Three]。因为 go 不允许使用 Unicode 感知正则表达式,所以我想我会先删除所有“垃圾字符”,然后使用strings.Fields()


问题是任何数字都被剥离了:


reg := regexp.MustCompile(`[\[\](){}"?!,-:;,']`)

fmt.Println(reg.ReplaceAllString("one 1 zer0", ""))

// outputs "one  zer" when I'd expect "one 1 zer0" :(


慕沐林林
浏览 251回答 2
2回答

Qyouu

[,-:]匹配范围内的所有字符,– :。该范围恰好包含所有 ASCII 数字(请参阅ascii(7))。把 放在-最后:reg := regexp.MustCompile(`[\[\](){}"?!,:;,'-]`)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go