本文主要是通过正则介绍移除文本中所有的标签,具体参考代码如下:
/// 移除所有html标签
func deleteHTMLTagFor(Text t:String) -> String {
return t.replacingOccurrences(of: "(?i)</?(\\w?)\\b[^<]*>", with: "", options: .regularExpression, range: nil)
}
/// 移除指定Html标签
/// - Parameters:
/// - tag: 标签名
/// - t: 文本
/// - Returns: String
func deleteHTMLTag(tag:String,andText t:String) -> String {
return t.replacingOccurrences(of: "(?i)</?\(tag)\\b[^<]*>", with: "", options: .regularExpression, range: nil)
}
/// 获取文本中的地址
func getHTMLUrlFor(Text t:String) -> [String] {
var _arrItem = [String]()
let strRegex = "([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\\/])+"
if let regexps:NSRegularExpression = try? NSRegularExpression.init(pattern: strRegex, options: NSRegularExpression.Options(rawValue: 0)) {
let stringRange = NSMakeRange(0, t.utf16.count)
regexps.enumerateMatches(in: t,
options: NSRegularExpression.MatchingOptions.init(rawValue: 0),
range: stringRange) { (result:NSTextCheckingResult?, _:NSRegularExpression.MatchingFlags, _:UnsafeMutablePointer<ObjCBool>) in
//可能为网址的字符串及其所在位置
if let urlRange = result?.range {
let _nt = NSString.init(string: t).substring(with: urlRange)
_arrItem.append(_nt)
}
}
}
return _arrItem
}
调用及测试效果: