【发布时间】:2019-02-02 18:18:25
【问题描述】:
我正在尝试为 String 类创建一个内部函数,以仅获取 AlphaNumeric 字符并返回一个字符串。在如何使用正则表达式将匹配项转换回字符串时,我遇到了一些错误。谁能告诉我如何修复代码或者是否有更简单的方法?
我想要这样的东西
let testString = "_<$abc$>_"
let alphaNumericString = testString.alphaNumeric() //abc
到目前为止我有:
extension String {
internal func alphaNumeric() -> String {
let regex = try? NSRegularExpression(pattern: "[^a-z0-9]", options: .caseInsensitive)
let string = self as NSString
let results = regex?.matches(in: self, options: [], range: NSRange(location: 0, length: string.length))
let matches = results.map {
String(self[Range($0.range, in: self)!])
}
return matches.join()
}
}
【问题讨论】:
-
您是否试图从字符串中删除除 ASCII 字母和数字之外的任何字符?
-
@WiktorStribiżew 是的,我只想要 ASCII 字母和数字。本质上是 26 个字母和 10 个数字
-
那么,您期望
abc是处理_<$abc$>_字符串的结果? -
@WiktorStribiżew 是的,只是 abc