===== 正規表現 =====
==== パターン指定方法 ====
^ パターン ^ 説明 ^ 使用例 ^ 例の補足 ^
| . | 任意の1文字(改行は除く) | ... | 任意の3文字 |
| ? | 直前の文字が0回または1回 | a?bc | abcまたはbc |
| * | 直前の文字を0回以上繰り返し | ab* | a、ab、abb、abbb、abbbb・・・ |
| + | 直前の文字が1回以上繰り返し | ab+ | ab、abb、abbb、abbbb・・・ |
| %%^%% | 行頭 | %%^%%abc | abcで始まる行に一致 |
| $ | 行末 | abc$ | abcで終わる行に一致 |
| [] | 括弧内の任意の1文字に一致 | [abc] | abcの1文字に一致 |
| ::: | ::: | [a-z] | 小文字のaからzまでの1文字に一致 |
| ::: | ::: | [A-Z] | 大文字のAからZまでの1文字に一致 |
| ::: | ::: | [0-9] | 数字の0から9までの1文字に一致 |
| [%%^%%] | 括弧内の文字に一致しない | [%%^%%abc] | abcの文字に一致しない |
| {} | 直前の文字を指定回数繰り返し | {n} | n回繰り返し |
| ::: | ::: | {n,} | n回以上繰り返し |
| ::: | ::: | {,m} | m回以下繰り返し |
| ::: | ::: | {n,m} | n回以上m回以下繰り返し |
| %%|%% | いずれかの文字列に一致 | foo%%|%%bar | fooまたはbarに一致 |
| \w | 任意の英数字と_(アンダースコア)の1文字に一致\\ ([a-zA-Z_0-9]と同値) | | |
| \W | 任意の英数字と_(アンダースコア)以外の1文字に一致 | | |
| \s | 任意の空白文字(スペース、タブ、改行、復帰)の1文字に一致 | | |
| \S | 任意の空白文字(スペース、タブ、改行、復帰)以外の1文字に一致 | | |
| \d | 任意の数字1文字に一致\\ ([0-9]と同値) | | |
| \D | 任意の数字以外の1文字に一致 | | |
| () | 括弧内に一致した文字列をグループ化する | | |
==== エスケープ ====
以下のように、エスケープする文字の直前に\\を記述する。
String s = "^\\.\w*"; // .(ドット)から始まる文字列
==== Stringクラスのmatchesメソッド ====
String s = "hogehoge";
if (s.matches("[a-z]{8}") {
// 処理
}
==== Patternクラス、Matcherクラス ====
import java.util.regex.Pattern;
import java.util.regex.Matcher;
・・・
String s = "123or456";
Pattern pattern = Pattern.compile("[0-9]+");
Matcher match = pattern.matcher(s);
while (match.find()) {
System.out.println(m.group());
}
123
456