SwiftUI沼でゆっくり浸る 正規表現で・・
こんにちは、川上です。
正規表現って、結構楽しいかも・・。
けったいな記号の様な文字の綴り続きの形で、期待の抽出ができたら、👍❗️です。
正規表現の書き方は、巷に彷徨えば、だいたい調べれるから、スルーしますw
先の
”
if getdatastr.pregMatche(pattern: ptnstr, matches: &ans)
は、正規表現で使ったStringのextension の関数を追加して使用したのでした。
”
の件の続きです。
Stringのextensionで、関数IFが安易に拡張できるのが、結構、便利ですwよね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | extension String { var count: Int { let string_NS = self as NSString return string_NS.length } func pregMatche(pattern: String , options: NSRegularExpression.Options = [] , matches: inout [String]) -> Bool { guard let regex = try? NSRegularExpression(pattern: pattern, options: options) else { return false } let targetStringRange = NSRange(location: 0, length: self.count) let results = regex.matches(in: self, options: [], range: targetStringRange) for i in 0 ..< results.count { for j in 0 ..< results[i].numberOfRanges { let range = results[i].range(at: j) matches.append((self as NSString).substring(with: range)) } } return results.count > 0 } } |
この術は、Editor用の既存アプリで検索窓等で概ねで使えます。
長い文章内で、多量で抽出や、置換をするようなことになったら、これで手抜きできないか、まず、考えちゃますw(ゼッタイ、ライトスタッフです)。
ではでは。。