Java正規表現によくあるマッチ パターン
2009/03/13 13:07Update
Java正規表現におけるよくあるマッチパターンとその概要、使い方(サンプル)などについて学びます。
Java正規表現について
Java正規表現について、次の記事をご参照ください。
Java正規表現 概要
Javaの正規表現によくあるマッチパターン
正規表現では、特別な意味を持つメタ文字で作られた条件をパターンと言います。
例えば、
数字を表す正規表現のパターン:[0-9]+
Eメールのフォーマットに表すパターン:[0-9a-zA-Z_\\-]+@[0-9a-zA-Z_\\-]+(\\.[0-9a-zA-Z_\\-]+){1,}
Java使用できる主要なメタ文字の一覧を以下に示します。
| メタ文字 | 説明 | 使用例 |
|---|---|---|
| ^ | 行頭にマッチします。 | 例:1、^hello。行頭にhelloの文字列はこのパターンにマッチします。 |
| $ | 行末にマッチします。 | 例:1、hello$。行末にhelloの文字列はこのパターンにマッチします。 |
| . | 改行以外の任意の1文字にマッチします。 | 例:1、hello.world。hello worldやhello-worldなどの文字列はこのパターンにマッチします。 |
| [] | 角括弧内の任意の1文字にマッチします | 例:1、[abc]。aかb、cはこのパターンにマッチします。 2,r[aeu]d。radやred、rudはこのパターンにマッチします。 |
| [A-Z] | 英大文字A-Zの任意1文字にマッチします。 | 例:1、a[A-Z]c。aAc,aBc,…,aZcなどの文字列はこのパターンにマッチします。 |
| [a-z] | 英小文字a-zの任意1文字にマッチします。 | 例:1、a[a-z]c。aac,abc,…,azcなどの文字列はこのパターンにマッチします。 |
| [0-9] | 数字0-9の任意1文字にマッチします。 | 例:1、a[0-9]c。a0c,a1c,…,a9cなどの文字列はこのパターンにマッチします。 |
| [^] | 角括弧内に含まれない1文字にマッチします。 | 例:1、[^abc]。a、b、c以外の文字はこのパターンにマッチします。 |
| * | 直前の表現を0回以上繰り返します。 | 例:1、ab*。aやab、abb、abbbなどの文字列はこのパターンにマッチします。 |
| + | 直前の表現を0回以上繰り返します。 | 例:1、ab+。ab、abb、abbbなどの文字列はこのパターンにマッチします。 |
| ? | 直前の表現を0回または1回繰り返します。 | 例:1、ab?。aとabはこのパターンにマッチします。 |
| {n} | 直前の表現をn回繰り返します。nは整数。 | 例:1、ab{2}。abbはこのパターンにマッチします。 |
| {n,} | 直前の表現をn回以上繰り返します。nは整数。 | 例:1、ab{2,}。abb、abbbなどはこのパターンにマッチします。 |
| {n,m} | 直前の表現をn回からm回まで繰り返します。n,mは整数。 | 例:1、ab{2,5}。abb,abbb,abbbb,abbbbbはこのパターンにマッチします。 |
| a|b | aまたはbにマッチします | 例:1、hello|world。helloまたworldはこのパターンにマッチします。 |
| () | グループ化。()内のパターンは(グループ)と見なされます。このグループに一致する文字列を記憶します。1,2..などの数字によるグループへのアクセスできます。 | - |
| \w | 任意の英数字と_ 1文字にマッチします。 | 例:1、"abc23_".matches("\\w*")。trueに返します。 |
| \W | 英数字と_以外の任意1文字にマッチします。 | 例:1、"abc23_".matches("\\W*")。falseに返します。 |
| \s | 任意の空白文字(スペース、タブ、改行、復帰)1文字にマッチします。 | 例:1、" \n\r".matches("\\s*")。trueに返します。 |
| \S | 空白文字(スペース、タブ、改行、復帰)以外の任意1文字にマッチします。 | 例:1、" \n\r".matches("\\s*")。falseに返します。 |
| \d | 数字の1文字にマッチします。 | 例:1、"120".matches("\\d*")。trueに返します。 |
| \D | 数字以外の1文字にマッチします。 | 例:1、"120".matches("\\D*")。falseに返します。 |
| [あ-ん] | ひらがなの1文字にマッチします。 | 例:1、"あいう".matches("[あ-ん]*")。trueに返します。 |
| [ア-ン] | カタカナの1文字にマッチします。 | 例:1、"アイウ".matches("[ア-イ]*")。trueに返します。 |
参考資料
java.lang.String API仕様
java.util.regex.Matcher API仕様
java.util.regex.Pattern API仕様
Sponsored Link
Comments
- Relative Articles
- Java開発及び実行環境の構築 | Linux篇 - (2008/08/31 20:34)
- Java開発及び実行環境の構築 | Windows篇 - (2008/08/31 21:18)
- 5分でJava Hello World! - (2008/08/31 22:13)
- Java言語の制御構文 - 条件分岐if/else/else if - (2008/10/01 21:30)
- Java言語の繰り返し制御構文 - for文 - (2008/10/03 18:22)
- Java言語の繰り返し制御構文 - do ... while文 - (2008/10/03 21:23)
- Java言語の繰り返し制御構文 - while文 - (2008/10/03 21:32)
- Java言語の基礎 - javacコマンドによるコンパイル - (2008/10/10 17:58)
- Java アクセス修飾子概要 - (2008/10/29 18:31)
- Javaアノテーション機能 概要 - (2009/02/12 13:06)
