在Swift中使用regex
我试图替换Swift中字符串中出现的所有空格和特殊字符 我不知道斯威夫特的正则表达式是什么 我正在尝试使用内置函数.replacingOccurences(of:)并将我的正则表达式作为字符串协议传入,在代码编译时,不会进行任何更改 网上有很多关于如何替换Swift中出现的问题的资源,但是,解决方案远比nessacary复杂 如何正确返回此输出(当前策略): 你可以用在Swift中使用regex,swift,regex,string,Swift,Regex,String,我试图替换Swift中字符串中出现的所有空格和特殊字符 我不知道斯威夫特的正则表达式是什么 我正在尝试使用内置函数.replacingOccurences(of:)并将我的正则表达式作为字符串协议传入,在代码编译时,不会进行任何更改 网上有很多关于如何替换Swift中出现的问题的资源,但是,解决方案远比nessacary复杂 如何正确返回此输出(当前策略): 你可以用 return word.replacingOccurrences(of: "\\W+", with: "", options:
return word.replacingOccurrences(of: "\\W+", with: "", options: .regularExpression)
请注意选项:.regularExpression
参数,该参数实际上在.replacingOccurrences
方法中启用基于正则表达式的搜索
您的模式是[^\w]
。它是一个否定字符类,匹配除单词char以外的任何字符。因此,它等于\W
/…/
是正则表达式分隔符。在Swift正则表达式中,它们被解析为文本正斜杠,因此您的模式不起作用
g
是一个“全局”修饰符,让正则表达式引擎匹配多个匹配项,但它只在受支持的地方工作(例如在JavaScript中)。由于Swift正则表达式中不支持正则表达式分隔符,因此正则表达式引擎知道如何通过定义进行操作:
返回一个新字符串,在该字符串中,接收方中目标字符串的所有出现项都被另一个给定字符串替换
如果需要检查ICU-ReX语法,考虑引用,它是在SWIFT/Objul-C.</P> < P>中使用的正则表达式库,此外,还可以扩展字符串并完成相同的位。但如果是家庭作业,他们说要坚持下去
var word = "Hello World!!!"
extension String {
func regEx() -> String {
return self.replacingOccurrences(of: "\\W+", with: "", options: .regularExpression, range: nil)
}
}
word.regEx()
使用
“\\W+”
…有类似于swift的网站吗?swift使用ICU regex库,我不知道有任何在线regex测试仪支持它,但PCRE很接近,尽管有相当大的差异。您需要将选项设置为。regularExpression
是的,我现在正在测试它,并准备更新。
var word = "Hello World!!!"
extension String {
func regEx() -> String {
return self.replacingOccurrences(of: "\\W+", with: "", options: .regularExpression, range: nil)
}
}
word.regEx()