什么是正则表达式?
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
swift 至今并没有在语言层面上支持正则表达式,可能在开发app时正则表达式使用的场景并不多。
封装
在 Cocoa 中我们可以使用 NSRegularExpression 来做正则匹配,所以我们在 NSRegularExpression 的基础上封装一个 RegularExpHelper 配匹一个字符串是否符合某个正则表达式。
struct RegularExpHelper { let RegularExp: NSRegularExpression init(_ pattern: String) throws { try RegularExp = NSRegularExpression(pattern: pattern, options: .caseInsensitive) } func match(inpuut: String) -> Bool { let matches = RegularExp.matches(in: inpuut, options: [], range: NSMakeRange(0, inpuut.count)) return matches.count > 0 } }
自定义 =~
有了封装好的 RegularExpHelper,我们就可以方便的自定义运算符了。
infix operator =~ : ATPrecedence precedencegroup ATPrecedence { associativity: none higherThan: AdditionPrecedence lowerThan: MultiplicationPrecedence } func =~ (input: String, RegularExp: String) -> Bool { do { return try RegularExpHelper(RegularExp).match(inpuut: input) } catch _ { return false } }
运算符定义
associativity 结合律
即多个同类的操作符顺序出现时的计算顺序
优先级
然后我们就可以使用了
if "[email protected]" =~ "^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$" { print("符合邮箱规则") } else { print("不符合邮箱规则") }
注意
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级