PGBox
P
G
Box

正規表現サンプル集

正規表現のメニューへ戻る



使用した環境
JDK 6 Update 11

入力チェックなどにも使用できる正規表現のサンプル集です。



意味正規表現
半角数値のみで構成されている、もしくは空白123456789^[0-9]*$
英字小文字のみで構成されている、もしくは空白abcdefg^[a-z]*$
英字大文字のみで構成されている、もしくは空白ABCDEFG^[A-Z]*$
英字小文字大文字のみで構成されている、もしくは空白ABCdefg^[a-zA-Z]*$
英数字のみで構成されている、もしくは空白12aaAA^[0-9a-zA-Z]*$
郵便番号123-1234^[0-9]{3}[-][0-9]{4}$
日付yyyy/M/d形式2009/7/29^[0-9]{4}/[01]?[0-9]/[0123]?[0-9]$
半角のみで構成されている、もしくは空白abc123アイウ#!^[-~。-゚]*$
全角のみで構成されている、もしくは空白あー漢字^[^-~。-゚]*$
全角ひらがな か音引き(ー)のみで構成されている、もしくは空白とぅーどぅ^[ぁ-んー]*$
全角カタカナか音引き(ー)のみで構成されている、もしくは空白トゥードゥ^[ァ-ヶー]*$
半角カタカナのみで構成されている、もしくは空白ヌルポインター^[ヲ-゚]*$



例えば、半角数値チェックが必要な場合には、以下のように実装する事ができます。
String str    // チェック対象の文字列

if (!str.matches("^[0-9]*$")) {
    // 半角数値のみで構成された文字列ではない
}


また、java.util.regex.Patternはマルチスレッド環境でも安全に使用できますので、サーブレットなどの何度もチェック処理を行う必要がある環境では
private static Pattern ptn = Pattern.compile("^[0-9]*$");

public xxx xxx() {
    
    String str // チェック対象の文字列
    
    if (!ptn.matcher(str).matches()) {
        // 入力エラー時の処理
    }

}
といったように、Pattern.compileの結果をあらかじめstatic変数で保持しておく事により、処理を少し高速化する事ができます。



 日付のチェックに関しては正規表現では、あくまで形式のチェックができるだけですので、妥当性のチェック(うるう年計算など)が必要な場合は
以下のようにDateFormat#parseを使用してチェックを行う必要があります。
SimpleDateFormat sd = new SimpleDateFormat("yyyy/M/d");
sd.setLenient(false);
try {
    sd.parse("2009/2/29");
} catch(ParseException e) {
    // 入力エラー
}






正規表現のメニューへ戻る