HOME > 正規表現を使う

正規表現を使う

正規表現を使用したサンプルです。

サンプルソースコード

例)"123A5"が半角数値のみであるかチェックする

RegexSample.java
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexSample {

    public static void main(String args[]) {

        //判定する文字列
        String str = "123A5";

        //判定するパターンを生成
        Pattern p = Pattern.compile("^[0-9]*$");
        Matcher m = p.matcher(str);

        //画面表示
        System.out.println(m.find());

    }

}

実行結果

コマンドプロンプト
C:\>java RegexSample false

文字列「123A5」は、数字以外の文字も混じっているのでfalseとなります。

正規表現パターン

以下は正規表現で使用される主要なパターンです。
これらのパターンを組み合わせて正規表現を作成します。

記号意味
パターン文字列結果
^先頭にマッチする"^ab""abcd"
"cdab"
true
false
$末尾にマッチする"ab$""abcd"
"cdab"
false
true
.任意の1文字にマッチする"a.c""abc"
"abbc"
"ac"
true
false
false
?直前の文字が0個または1個にマッチする"^A?$"""
"A"
"AA"
"B"
true
true
false
false
*直前の文字が0個以上にマッチする"^A*$"""
"A"
"AA"
"B"
true
true
true
false
+直前の文字が1個以上にマッチする"^A+$"""
"A"
"AA"
"B"
false
true
true
false
\d半角数値(0~9)にマッチする
※ [0-9]と同じ
"\\d""0123"
"0123"
"abc"
true
false
false
\D半角数値(0~9)以外にマッチする
※ [^0-9]と同じ
"\\D""0123"
"0123"
"abc"
false
true
true
\w半角英数値(0~9、a~z、A~Z、_)にマッチする
※ [0-9a-zA-Z_]と同じ
"\\w""012_AbC"
"12Ab"
"#$%&"
true
false
false
\W半角英数値(0~9、a~z、A~Z、_)以外にマッチする
※ [^0-9a-zA-Z_]と同じ
"\\W""012_AbC"
"12Ab"
"#$%&"
false
true
true
[ ]いずれかの文字とマッチする"[ABC]""A"
"B"
"D"
true
true
false
( )1つのグループとして扱う"(ABC)""ABC"
"CBA"
true
false
{n}直前の文字にn回マッチする"^A{3}$""AA"
"AAA"
"AAAA"
false
true
false
{n,}直前の文字にn回以上マッチする"^A{3,}$""AA"
"AAA"
"AAAA"
false
true
true
{n,m}直前の文字にn回以上m回以下マッチする"^A{3,4}$""AA"
"AAA"
"AAAA"
"AAAAA"
false
true
true
false
|いずれかとマッチする"ABC|DEF""ABC"
"DEF"
"CBA"
"DE"
true
true
false
false
-範囲を指定する"[3-7]""2"
"3"
"7"
"8"
false
true
true
false
^否定([ ]の中で使用する)"[^AB]""A"
"B"
"C"
false
false
true
&&かつ"[0-9&&[^4]]""3"
"4"
"5"
true
false
true

上記正規表現で使われている文字をパターンとして使用したい場合は、文字の頭に「\」マークを付ければOKです。(例:+ → \+)

正規表現サンプル集

正規表現サンプル
//半角数値10桁にマッチ
"^\\d{10}$"

//半角数値8桁以上10桁以下にマッチ
"^\\d{8,10}$"

//1桁以上の半角英数(0~9、a~z、A~Z)にマッチ
"^[0-9a-zA-Z]+$"

//郵便番号(半角数値3桁 半角ハイフン 半角数値4桁)にマッチ
"^\\d{3}-\\d{4}$"

上記表記は、Javaでのエスケープ記述済みです。(例:\d → \\d)