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)