正規表現
Java 正規表現検索の使用例
String str = "japan";
if( str.matches("japan")) {
System.out.println("マッチする");
}else {
System.out.println("マッチしない");
}
正規表現のメタ文字
| .(ピリオド) | 任意の文字 |
| * | 直前の文字が0回以上 |
| + | 直前の文字が1回以上 |
| ? | 直前の文字が0回か1回 |
| {数} | 直前の文字が数回 |
| {数,} | 直前の文字が数回以上 |
| {数1,数2} | 直前の文字が数1~数2回 |
| [ab] | aかb |
| [a-z] | aからz。小文字 |
| [A-Z_a-z] | 大文字、小文字、アンダーバー。\wと同じ。 |
| [0-9] | 数字。\dと同じ |
| [^0-9] | 数字以外 |
| ^ | 文字列の先頭(matchesでは常に最初に付いている扱い) |
| $ | 文字列の最後(matchesでは常に最後に付いている扱い) |
正規表現のエスケープシーケンス
注:文字列中では\は\\と書くので、\d は \\d となる。
| \n | 改行 |
| \t | タブ |
| \d | 数字 |
| \D | 数字以外 |
| \w | 半角英数字とアンダーバー |
| \s | 空白またはタブ |
| \. | ピリオド |
| \\ | \マーク |
使用例
String str = "860-001";
if( str.matches("\\d\\d\\d-\\d\\d\\d\\d")) {
System.out.println("正しい郵便番号");
}else {
System.out.println("不正な郵便番号");
}
Stringクラスのメソッド
| matches(正規表現) | 正規表現にマッチすればtrueを返す。 |
| replaceAll(正規表現,置換後文字列) | 正規表現にマッチした文字列を置換後文字列にする。 |
| split(区切り文字) | 区切り文字(正規表現)で文字列を分割し配列で返す。 |