正規表現
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(区切り文字) | 区切り文字(正規表現)で文字列を分割し配列で返す。 |