Avatar
swift-corelibs-foundation - The Foundation Project, providing core utilities, internationalization, and OS independence
6:20 AM
OpenSource版ですけど調べてみたら
6:20 AM
range(of:options:range:)は、最終的に内部的には NSRegularExpressionを呼び出していました。
6:20 AM
internal func _rangeOfRegularExpressionPattern(regex pattern: String, options mask: CompareOptions, range searchRange: NSRange, locale: Locale?) -> NSRange { var matchedRange = NSRange(location: NSNotFound, length: 0) let regexOptions: NSRegularExpression.Options = mask.contains(.caseInsensitive) ? .caseInsensitive : [] let matchingOptions: NSRegularExpression.MatchingOptions = mask.contains(.anchored) ? .anchored : [] if let regex = _createRegexForPattern(pattern, regexOptions) { matchedRange = regex.rangeOfFirstMatch(in: _swiftObject, options: matchingOptions, range: searchRange) } return matchedRange }
6:23 AM
↑呼び出し方としてはこの通りなので、 regexOptions と machingOptions は、 mask 引数で決まってて、
6:23 AM
これは @lovee さんのサンプルだと .regularExpression しか与えてないから (edited)
6:23 AM
謎になった
6:24 AM
@ありぜ さんが元々書いた NSRegularExpression はどんなコードだったんでしょう?