Chr*_*ris 3 regex string swift
我正在尝试替换 Swift 中字符串中出现的所有空格和特殊字符。
我不知道 Swift 中的正则表达式是什么。
我尝试使用内置函数 .replacingOccurences(of:) 并将我的 RegEx 作为字符串协议传递,在代码编译时,不进行任何更改。
网上有很多关于如何替换 Swift 中的事件的资源,但是,解决方案比看起来需要的要复杂得多。
如何正确返回此输出(当前策略):
let word = "Hello World!!"
func regEx(word: String) -> String {
return word.replacingOccurrences(of: "/[^\\w]/g", with: "")
}
// return --> "HelloWorld"
Run Code Online (Sandbox Code Playgroud)
您可以使用
return word.replacingOccurrences(of: "\\W+", with: "", options: .regularExpression)
Run Code Online (Sandbox Code Playgroud)
请注意options: .regularExpression该方法中实际启用基于正则表达式的搜索的参数.replacingOccurrences。
你的模式是[^\w]. 它是一个否定字符类,可以匹配除单词字符之外的任何字符。所以,它等于\W。
它们/.../是正则表达式分隔符。在 Swift 正则表达式中,它们被解析为文字正斜杠,因此您的模式不起作用。
这g是一个“全局”修饰符,让正则表达式引擎匹配多个匹配项,但它仅在支持的地方有效(例如在 JavaScript 中)。由于 Swift 正则表达式不支持正则表达式分隔符,因此正则表达式引擎知道如何通过.replacingOccurrences方法定义进行操作:
返回一个新字符串,其中接收器中所有出现的目标字符串都被另一个给定字符串替换。
如果您需要检查 ICU 正则表达式语法,请考虑参考ICU 用户指南>正则表达式,它是 Swift/Objective-C 中使用的正则表达式库。