この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
プログラミング:java:基本:正規表現 [2018/06/10 12:27] sotoyama |
プログラミング:java:基本:正規表現 [2018/06/10 12:54] (現在) sotoyama [テーブル] |
||
---|---|---|---|
ライン 3: | ライン 3: | ||
==== パターン指定方法 ==== | ==== パターン指定方法 ==== | ||
- | ^ パターン ^ 説明 ^ 使用例 ^ 例の補足 ^ | + | ^ パターン ^ 説明 ^ 使用例 ^ 例の補足 ^ |
- | | . | 任意の1文字(改行は除く) | ... | 任意の3文字 | | + | | . | 任意の1文字(改行は除く) | ... | 任意の3文字 | |
- | | ? | 直前の文字が0回または1回 | a?bc | abcまたはbc | | + | | ? | 直前の文字が0回または1回 | a?bc | abcまたはbc | |
- | | * | 直前の文字を0回以上繰り返し | ab* | a、ab、abb、abbb、abbbb・・・ | | + | | * | 直前の文字を0回以上繰り返し | ab* | a、ab、abb、abbb、abbbb・・・ | |
- | | + | 直前の文字が1回以上繰り返し | ab+ | ab、abb、abbb、abbbb・・・ | | + | | + | 直前の文字が1回以上繰り返し | ab+ | ab、abb、abbb、abbbb・・・ | |
- | | %%^%% | 行頭 | %%^%%abc | abcで始まる行に一致 | | + | | %%^%% | 行頭 | %%^%%abc | abcで始まる行に一致 | |
- | | $ | 行末 | abc$ | abcで終わる行に一致 | | + | | $ | 行末 | abc$ | abcで終わる行に一致 | |
- | | [] | 括弧内の任意の1文字に一致 | [abc] | abcの1文字に一致 | | + | | [] | 括弧内の任意の1文字に一致 | [abc] | abcの1文字に一致 | |
- | | ::: | ::: | [a-z] | 小文字のaからzまでの1文字に一致 | | + | | ::: | ::: | [a-z] | 小文字のaからzまでの1文字に一致 | |
- | | ::: | ::: | [A-Z] | 大文字のAからZまでの1文字に一致 | | + | | ::: | ::: | [A-Z] | 大文字のAからZまでの1文字に一致 | |
- | | ::: | ::: | [0-9] | 数字の0から9までの1文字に一致 | | + | | ::: | ::: | [0-9] | 数字の0から9までの1文字に一致 | |
- | | [%%^%%] | 括弧内の文字に一致しない | [%%^%%abc] | abcの文字に一致しない | | + | | [%%^%%] | 括弧内の文字に一致しない | [%%^%%abc] | abcの文字に一致しない | |
- | | {} | 直前の文字を指定回数繰り返し | {n} | n回繰り返し | | + | | {} | 直前の文字を指定回数繰り返し | {n} | n回繰り返し | |
- | | ::: | ::: | {n,} | n回以上繰り返し | | + | | ::: | ::: | {n,} | n回以上繰り返し | |
- | | ::: | ::: | {,m} | m回以下繰り返し | | + | | ::: | ::: | {,m} | m回以下繰り返し | |
- | | ::: | ::: | {n,m} | n回以上m回以下繰り返し | | + | | ::: | ::: | {n,m} | n回以上m回以下繰り返し | |
- | | %%|%% | いずれかの文字列に一致 | foo%%|%%bar | fooまたはbarに一致 | | + | | %%|%% | いずれかの文字列に一致 | foo%%|%%bar | fooまたはbarに一致 | |
- | | \w | 任意の英数字と_(アンダースコア)の1文字に一致 | | | | + | | \w | 任意の英数字と_(アンダースコア)の1文字に一致\\ ([a-zA-Z_0-9]と同値) | | | |
- | | \W | 任意の英数字と_(アンダースコア)以外の1文字に一致 | | | | + | | \W | 任意の英数字と_(アンダースコア)以外の1文字に一致 | | | |
- | | \s | 任意の空白文字(スペース、タブ、改行、復帰)の1文字に一致 | | | | + | | \s | 任意の空白文字(スペース、タブ、改行、復帰)の1文字に一致 | | | |
- | | \S | 任意の空白文字(スペース、タブ、改行、復帰)以外の1文字に一致 | | | | + | | \S | 任意の空白文字(スペース、タブ、改行、復帰)以外の1文字に一致 | | | |
- | | \d | 任意の数字1文字に一致 | | | | + | | \d | 任意の数字1文字に一致\\ ([0-9]と同値) | | | |
- | | \D | 任意の数字以外の1文字に一致 | | | | + | | \D | 任意の数字以外の1文字に一致 | | | |
- | | () | 括弧内に一致した文字列をグループ化する | | | | + | | () | 括弧内に一致した文字列をグループ化する | | | |
- | ==== matchesメソッド ==== | + | ==== エスケープ ==== |
+ | 以下のように、エスケープする文字の直前に\\を記述する。 | ||
+ | <code java> | ||
+ | String s = "^\\.\w*"; // .(ドット)から始まる文字列 | ||
+ | </code> | ||
+ | |||
+ | ==== Stringクラスのmatchesメソッド ==== | ||
<code java> | <code java> | ||
ライン 38: | ライン 44: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | ==== Patternクラス、Matcherクラス ==== | ||
+ | |||
+ | <code java> | ||
+ | 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()); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | <code prompt> | ||
+ | 123 | ||
+ | 456 | ||
+ | </code> | ||
+ | |||