微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

贡献者:赵大财
博客:https://my.oschina.net/zhaodacaiGitHub: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,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,range: dacaiRange,withTemplate: "-e-")
            print(newStr)
        }
        catch {
            print(error)
        }

NSRegularExpression.Options caseInsensitive 不区分大小写 allowCommentsAndWhitespace允许注释和空白 ignoreMetacharacters 忽略字符 dotMatchesLineseparators 匹配行空格符 anchorsMatchLines 锚配线 useUnixLineseparatorsUnix行分隔符 useUnicodeWordBoundariesUnicode字边界

原文地址:https://www.jb51.cc/swift/322601.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐