【Java入門】文字列チェック&比較の味方!正規表現とは
- ツイート
-
- 2018/01/25
フォーム入力の際にメールアドレスが正しく入力されているかチェックしたり、正確に入力されていない場合はエラーを表示させたりする機能を実装するときに便利なのが正規表現です。正規表現の代表的なパターンといくつかのコマンドを覚えるだけで作業効率が格段にアップします。エンジニアやプログラマーを目指す方は、ぜひ覚えておきましょう。
今回は、正規表現の記述法やその使い方についてご紹介します。
IT業界まるわかりガイドは、日本初Web専門スクールのインターネット・アカデミーが運営する業界情報メディアです。最新の業界情報を、初心者にも分かりやすくご紹介しています。
目次
正規表現とは
インターネットの検索エンジンを利用する際、検索したい文字に「*(アスタリスク)」「AND」「OR」を加えると、さまざまな条件で検索することができます。
プログラムの文字列の中に指定したパターンに合致する部分があるかを調べるときに使われるのが正規表現です。通常の完全一致検索では検索できない文字列であっても、正規表現を利用することにより、検索することができます。
正規表現の記述には、検索エンジンと同じように特殊な文字や特定の構文を用います。よく使用する正規表現と同時に特殊なパターンを頭の隅に置いておけば、作業効率が大幅にアップします。正規表現はJavaに限らず、他の言語にも活用できるため、積極的に使用して記述方法に慣れていきましょう。
正規表現の記述法
記号の意味
主な正規表現の記号には、以下のようなパターンがあります。多くの場合、他の記号と組み合わせて使用します。
- 「.」...任意の1文字
- 「*」...直前の0個以上の文字
- 「+」...直前の1個以上の文字
- 「?」...直前の0個または1個の文字
- 「|」...|で区切られた、いずれかの文字とのマッチング
- 「^」...文字列の先頭
- 「[ ]」...[ ]内のいずれかの文字とのマッチング
- 「()」...()内をグループ化
- 「[^~]」...~以外の文字(~には文字が入る)
- 「-」...文字の範囲(「[A-Z]」はA~Zまでの1文字とのマッチング)
- 「?=~」...~の部分を先読み
組み合わせ(and、or)
上記の記号を使って、論理演算子andとorを表現してみましょう。
- appleとbananaという2つの単語が含まれているか(apple and banana)
「^(?=.*apple)(?=.*banana)」 - appleもしくはbananaのいずれかの単語が含まれているか(apple or banana)
「apple|banana」
Javaの正規表現はどんなときに使う?
文字列が等しいかを調べる(equalsメソッド)
Javaで特定の文字列が等しいかをチェックする場合、「equals (同値性)メソッド」を使います。同値性という言葉通り、equalsメソッドはオブジェクト(この場合は文字列)の値が等しいかどうかを確かめることができます。
似たような表現で「==演算子」がありますが、こちらはオブジェクトの同一性をチェックするためのものであるため、間違えないようにしましょう。
パターンの一致を調べる(matchesメソッド)
Javaで文字列のパターンが一致するかをチェックするときは、「matchesメソッド」を使います。matchesメソッドは正規表現を使用して、指定した部分文字列のマッチングを調べることができます。例えば、フォーム入力の際にメールアドレス欄に入力された文字列は、@キーワードをmatchesメソッドで調べ、正しいフォーマットかどうか判断します。
おわりに
今回は正規表現についてご紹介しました。正規表現は非常に奥が深く、正規表現を専門に扱った書籍もあるほどです。正規表現は文字列の検索や入力内容のチェックに必須であるため、エンジニアやプログラマーを目指している方はしっかりと理解して使いこなせるようにしましょう。
インターネット・アカデミーでは、正規表現を含めたプログラム開発に欠かせない知識を、実際によく使われるWebアプリケーションの例に即して実戦的に学ぶことができます。ご興味のある方は、Java講座やITエンジニア総合コースの受講をおすすめします。