→ Swift Regex ∞
几个 Takeaway:
- 正则表达式已经很难了,Swift 并没有让情况变得更好一些
- Swift 里常用的方式是
NSRegularExpression
- 对于简单的情况,不想用
NSRegularExpression
。 可以使用String
的range(of:options:range:locale:)
:
import Foundation
let invitation = "Fancy a game of Cluedo™?"
invitation.range(of: #"\bClue(do)?™?\b"#,
options: .regularExpression) != nil // true
通过判断 range 是否存在来判断正则是否命中。
其中用两个 #
将字面量包裹起来的语法是 Swift 5 里引入的 raw string literals。
NSRegularExpression
的用法