2017년 4월 17일 월요일

正規表現を使う

パターン意味
パターン文字列結果
^先頭にマッチする"^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
正規表現サンプル集
//半角数値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}$"
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());
【エスケープシーケンス記号】
記号文字
\\円記号
\'シングルクォーテーション
\"ダブルクォーテーション
\n改行コード
\tタブコード
\bバックスペース(1文字削除する)
\rキャリッジリターン(行頭に戻る)
\fフォームフィード(改ページ)