由于从后面看,您只使用了一个简单的字符集;您可以将其替换为否定的字符集:
\b[^@#/]\w.*
如果在字符串的开头允许使用,则使用^
锚点:
(?:^|[^@#\/])\b\w.*
根据您问题中“转到游乐场”链接中的示例,我认为您正在寻找以开头的所有字符作为过滤条件[#@/]
。您可以使用一个filter
函数:
func Filter(vs []string, f func(string) bool) []string {
vsf := make([]string, 0)
for _, v := range vs {
if f(v) {
vsf = append(vsf, v)
}
}
return vsf
}
func Process(inp string) string {
t := strings.Split(inp, " ")
t = Filter(t, func(x string) bool {
return strings.Index(x, "#") != 0 &&
strings.Index(x, "@") != 0 &&
strings.Index(x, "/") != 0
})
return strings.Join(t, " ")
}