我尝试使用String.replacingOccurrences
将所有出现的以下字符更改为逗号:
#.$[]
然而,我似乎无法用我所拥有的东西来实现这一目标:
func cleanStr(str: String) -> String {
return str.replacingOccurrences(of: "[.#$[/]]", with: ",", options: [.regularExpression])
}
print(cleanStr(str: "me[ow@gmai#l.co$m")) // prints "me[ow@gmai,l,co,m\n"
有人能帮我看看我做错了吗?
答案 0 :(得分:4)
在您的模式[.#$[/]]
中,有一个字符类联合,也就是说,它只匹配.
,#
,$
和/
个字符(两个字符类[.#$]
和[/]
的组合)。
在ICU正则表达式中,您需要在字符类中转义文字方括号[
和]
:
"[.#$\\[/\\]]"
此代码输出me,ow@gmai,l,co,m
:
func cleanStr(str: String) -> String {
return str.replacingOccurrences(of: "[.#$\\[/\\]]", with: ",", options: [.regularExpression])
}
print(cleanStr(str: "me[ow@gmai#l.co$m"))