Swift5的正则表达式的写法
override func viewDidLoad() {
super.viewDidLoad()
let str = "@codewhey:【动物尖叫合辑】#汽车##安全出行#这么美的女司机,就@鲁军:像是电视剧里面的明星一样,怎么就开大https://www.jianshu.com/p/7b2488721464货车呢 L改车[吃惊]妄想症的微博视频https://www.baidu.com/"
// let pattern = "@.*?:"
//"@codewhey:"
// "@鲁军:"
// let pattern = "#.*?#" //匹配话题
// "#汽车#"
// "#安全出行#"
//let pattern = "\\[.*?\\]" //表情的正则表达 ,.* 表示是0个或多个 。?
//"[吃惊]"
let pattern = "((http[s]{0,1}|ftp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)"
guard let regex = try? NSRegularExpression(pattern: pattern, options: []) else{return}
let results = regex.matches(in: str, options: [], range: NSRange(location: 0, length: str.count))
for result in results {
debugPrint((str as NSString).substring(with: result.range) )
}
}
网友评论