您的位置:首页 > 移动开发 > Swift

Swift3.0-正则表达式 <待续>

2016-11-23 00:00 323 查看
贡献者:赵大财
博客:https://my.oschina.net/zhaodacai GitHub:https://github.com/zhaodacai
邮箱: zhaodacai@yeah.com QQ:327532817
=============================

先直接来代码:

fileprivate func check(str: String) {
do {
let pattern = "[^a-z]"
let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive)
let dacaiRange = NSMakeRange(0, str.characters.count)

//匹配到的个数
let  resa = regex.numberOfMatches(in: str, options: [], range: dacaiRange)
print(resa)

//匹配第一个结果集
guard let resb = regex.firstMatch(in: str, options: [], range: dacaiRange) else {
return
}
print((str as NSString).substring(with: resb.range))

//第一个结果的range
print(regex.rangeOfFirstMatch(in: str , options:[], range: dacaiRange).location)

//匹配全部
let resc = regex.matches(in: str, options: NSRegularExpression.MatchingOptions(rawValue: 0),range:dacaiRange)
for checkingRes in resc {
print(checkingRes.range.location,checkingRes.range.length)
print((str as NSString).substring(with: checkingRes.range))
}

//替换
let newStr = regex.stringByReplacingMatches(in: str, options: [], range: dacaiRange, withTemplate: "-e-")
print(newStr)
}
catch {
print(error)
}

NSRegularExpression.Options
caseInsensitive 不区分大小写
allowCommentsAndWhitespace 允许注释和空白
ignoreMetacharacters 忽略字符
dotMatchesLineSeparators 匹配行空格符
anchorsMatchLines 锚配线
useUnixLineSeparators Unix行分隔符
useUnicodeWordBoundaries Unicode字边界
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息