今回は、Objective-C
で正規表現を使って文字列が指定したパターンと一致しているか調べる方法についてです。
PHP
や JavaScript
とは違い、Swift
や Objective-C
は正規表現を使う際の記述が少し複雑で毎回調べることになりそうなので、今のうちにまとめておきます。
参考にさせていただいた記事はこちら。
Obj-C で正規表現 – Qiita
https://qiita.com/a_yasui/items/aaa2dfe0a5cb6471c762
サンプルコードは下記の通りです。
NSString *pattern = @"[検索したい正規表現のパターン]"; // 正規表現のオブジェクト作成 NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil]; NSTextCheckingResult *match = [regex firstMatchInString:[比較したい文字列] options:0 range:NSMakeRange(0, [比較したい文字列].length)]; if (match) { // パターンに一致した時に行いたい処理 }
1行目で検索したい正規表現のパターンを NSString
で指定し、3行目で正規表現のオブジェクトを作成します。
なお、1行目の正規表現のパターンには、正規表現ではなく、検索したい文字列を指定してもOKとのことです。
また、正規表現のパターンを指定する場合は、JavaScript や PHP の時とは違い、パターンの最初と最後に /
は不要ですので、お間違えのないようにご注意ください。
あとは、4行目で検索したい文字列と比較します。
結果は変数 match
に格納されますので、これを 6〜8 行目のように if
文で比較します。
処理としては以上です!
ちなみに、今回はパターンと一致したかどうかを調べたかっただけなのでこれしかやっていませんが、下記のように書くと、パターンと一致した個数が調べられるとのことでした。
// マッチした個数を取得 NSRange matchRange = [match range];
こちらはアプリの仕様に合わせてご活用ください。
以上、Objective-C で正規表現を使う方法でした。
ご参考になれば幸いです。