今回は、Java正規表現について使い方を纏めてみました。
Javaを勉強するなら、以下の本がオススメです。
すっきりわかるJava入門第3段
![]() | 価格:2,860円 |

Javaの正規表現チェック
どのような正規表現ルールがあるかを確認する前に、正規表現をチェックするメソッドを確認しておきましょう。
操作 | メソッド |
---|---|
文字列が、指定された正規表現と一致するかどうかを判定 | public boolean matches(String regex) |
“Hello”という文字で正規表現チェックを使ってみましょう。
String str = "Hello";
str.matches("Hello"); // ⬅︎ True
str.matches("abcd"); // ⬅︎ False
str.matches("hello"); // ⬅︎ False
上記の例から分かる通り、「Hello」という文字で検索した時のみ、一致(True)が返却されました。
良く使う正規表現
今度は、良く使う以下2つの正規表現でチェックを行ってみましょう
正規表現 | 意味 |
---|---|
. | 任意の1文字が存在する |
* | 直前の文字が0回以上繰り返して存在する |
では、「.」を使ったソースコードで見てみましょう
// . を使うって任意の文字を正規表現で判定
"Hello".matches("H.llo"); // ⬅︎ True
上記の例では、「.」を使って「Hello」の「e」の部分を任意の文字で正規表現しました。
この例を使えば「Hallo」、「Hillo」 、「Hollo」など、「e」以外の文字で判定してもTrueが返却されます。
次に「*」を使ったソースコードで見てみましょう
"Helloooooow".matches(Hello*w); // ⬅︎ True
上記の例では、「o*」で正規表現の判定を行なっているので、何個「o」があってもTrueが返却されます。
例えば、「Hellow」、「Hellooow」、「「Hellooooooooooooooooooooooooow」」でも全てTrueになります。
そして任意の文字を表す「.」と、0回以上繰り返す「*」を組み合わせることで、以下のような正規表現が可能となります。
str.matches("Hello.*"); // ⬅︎ Helloで始まる文字なら何でもOK
str.matches(".*World"); // ⬅︎ Worldでおわる文字なら何でもOK

繰り返しの正規表現
正規表現 | 意味 |
---|---|
{n} | 直前の文字のn回の繰り返し |
{n,} | 直前の文字のn回以上の繰り返し |
{n, m} | 直前の文字のn回以上、m回以下の繰り返し |
? | 直前の文字の0回、または1回の繰り返し |
+ | 直前の文字の1回以上の繰り返し |
実際の例を見てみましょう。
"Helloooow".matches(Hello{4}w); // ⬅︎ True 「o」が4文字ならOK
"Helloooow".matches(Hello{2}w); // ⬅︎ False 「o」が2文字じゃないのでNG
"Helloooow".matches(Hello{2,}w); // ⬅︎ True 「o」が2文字以上ならOK
"Helloooow".matches(Hello{2, 4}w); // ⬅︎ True 「o」が2文字以上、4文字以下ならOK
"Helloooow".matches(Hello{2, 6}w); // ⬅︎ True 「o」が2文字以上、6文字以下ならOK
"Helloooow".matches(Hello{2, 3}w); // ⬅︎ False 「o」が2文字以上、3文字以下じゃないのでNG
"Helloooow".matches(He?lloooow); // ⬅︎ True 「e」の文字が0文字か1文字ならOK
"Hlloooow".matches(He?lloooow) // ⬅︎ True 「e」の文字が0文字か1文字ならOK
"Heelloooow".matches(He?lloooow); // ⬅︎ False 「e」の文字が2文字あるのでNG
"Helloooow".matches(He?lloooow); // ⬅︎ True 「e」1文字以上ならOK
"Hlloooow".matches(He?lloooow) // ⬅︎ False 「e」の文字が0文字なのでNG
"Heelloooow".matches(He?lloooow); // ⬅︎ True 「e」1文字以上ならOK
いずれかの文字を表す正規表現
正規表現 | 意味 |
---|---|
[S] | []の中に定義したいずれか文字であること |
実際の例を見てみましょう。
"Hello".matches(H[aiueo]llo); // ⬅︎ True aiueoのいずれかの文字ならOK
"Hallo".matches(H[aiueo]llo); // ⬅︎ True aiueoのいずれかの文字ならOK
"Hxllo".matches(H[aiueo]llo); // ⬅︎ False aiueoのいずれでもないためNG
いずれかの文字グループ
正規表現 | 意味 |
---|---|
[a-z] | a〜zのいずれかの文字(全ての小文字のアルファベット) |
[A-Z] | A〜Zのいずれかの文字(全ての大文字のアルファベット) |
[0-9] | いずれかの数字 |
¥d | いずれかの数字([0-9]と同じ) |
¥w | 英字・数字・アンダーバー([a-zA-Z_0-9]と同じ) |
¥s | 空白文字(スペース、タブ文字、改行文字など) |
実際の例を見てみましょう。
"Hello".matches("[a-zA-Z]{5}") // ⬅︎ True アルファベット(大文字・小文字)5文字であればOK
他にも正規表現はいくつかありますが、代表的な例を覚えておけば、普段の開発はそこまで苦労しないはず、後は必要になったタイミングで調べましょう。
もっとJavaを勉強したい方は、以下の本がオススメです。
すっきりわかるJava入門第3段
![]() | 価格:2,860円 |

===============
以上、Javaの良く使う正規表現を紹介してみました。
この情報が皆さんの人生のお役に立てれば幸いです。
エンジニアとして日本のITリテラシーを高めていきたいと共感して頂いた人は、是非このブログの拡散とyoutubeの方も見ていただけると嬉しいです。
記事を最後まで見ていただきありがとうございました。
執筆者: hiroエンジニア