Swiftで正規表現を使いやすくするユーティリティ・クラスを作った

スポンサーリンク

Swift で正規表現を使おうとしたところ、CoreData と同様これまた若干使いにくい…。普段 Ruby で正規表現処理のコードを書いていると、Swift での正規表現の処理が若干冗長に感じられました。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

— 環境 —
Xcode 6.3.2
Swift 1.2

playground で Swift の正規表現処理を確認

普通に、文字列が正規表現のパターンにマッチするか調べたり、マッチした部分を抽出するコードです。Xcode の playgroung で動作確認しました。

NSRegularExpression で正規表現オブジェクトを生成し、matchesInString() メソッドでマッチ部のオブジェクトを配列(Array)で取得できます。そして、NSString#substringWithRange() メソッドに、文字列でマッチした範囲の Range オブジェクトを渡して、マッチ部分の文字列を取得します。

一連の処理の書き方が少々冗長で、何度も繰り返し書きたくない感じです。ということで、少々雑ではありますけど、直感的に Swift で正規表現を使えるようにするユーティリティなクラス(ライブラリ)を作成しました。

Swift で正規表現を処理するユーティリティ

とりあえず最低限の上記の例でも書いた、「マッチするかどうか判定」「マッチした文字列を抽出」の処理を行う2種類のメソッドを作りました。それぞれ、Regexp#isMatch(), Regexp#matches() メソッドに相当します。他にも必要な処理が出てきたらメソッドを追加していこうと思います。

Regexp.swift

Swift utility class for regular expression

使い方は以下のとおり。

これでかなり簡単に Swift で正規表現のコードが書けるようになりました。もう少しリファクタリングが必要かとは思いますけど。このユーティリティな正規表現クラスは、以下リンクの記事を参考にして作成しました。多謝。

スポンサーリンク
 
スポンサーリンク

Leave Your Message!