正規表現
正規表現(regex)は、複雑なパターンの一致を可能にする高度な検索文字列です。
このドキュメントでは、カテゴリー別に正規表現のエレメントが分類されています。
例ではすべて以下の2行を使用しています:
Comment from happy_user@company.com (04-Apr-2016):
I love working with Talend! It really helps me with all my daily tasks!
正規表現の例
| 正規表現 | マッチング |
|---|---|
| \bTa | Talend |
| \bw\w* | working, with |
| \w+n\b | プレパレーション |
| Talend\s\w+\s\w+ | Talend Data Preparation |
| task(s?) | tasks("task"とも一致します) |
| \w+@\w+.com | happy_user@company.com |
| \d{2}-.*-\d+ | 04-Apr-2016 |
アンカー
| 文字 | マッチング | 例 |
|---|---|---|
| ^ | 文字列の最初、または複数行パターンの行の最初 | ^Commentは行頭の"Comment"と一致します。 ^C.*は最初の行と一致します。 |
| $ | 文字列の最後、または複数行パターンの行の最後 | !$は最後のエクスクラメーションマークと一致します。 |
| \b | 語境界 | \bwoは"working"の"wo"と一致します。 \bwo\w+は"working"と一致します。 ng\bは"working"の"ng"と一致します。 \w+ng\bは"working"と一致します。 |
| \B | 語境界ではない | \Bhは"with"のような末尾の"h"ではなく"helps"または"happy"のような先頭の"h"と一致します。 h\Bは"helps"または"happy"のような先頭の"h"ではなく"with"のような末尾の"h"と一致します。 |
文字クラス
| 文字 | マッチング | 例 |
|---|---|---|
| 。 | 新しい行(\n)以外の任意の文字 | .は、復帰改行以外のテキストの全文字と一致します。 |
| \s | ホワイトスペース | Talend\sDataは「Talend Data」に一致します。 Data\s+Preparationは"Data Preparation"に一致します。 |
| \S | ホワイトスペースではない | \Sは文中のスペースを除くすべての文字と一致します。 |
| \d | 数字 | \d{4}は"2016"と一致します。 |
| \選 | 数字ではない | \Dはテキスト内の数字ではなく、すべての文字と一致します。 |
| \w | 単語の文字とアンダースコア | T\w+は"Talend"に一致します。 |
| \W | 語ではない | company\Wcom は"company.com"と一致します。 |
| \n | 新しい行 | .*\n.*は全体のテキストと一致します。 |
エスケープ文字
| 文字 | マッチング |
|---|---|
| \. | 。 |
| \\ | \ |
| \+ | + |
| \* | * |
| \? | ? |
| \$ | $ |
| \[ | [ |
| \] | ] |
| \{ | { |
| \} | } |
| \( | ( |
| \) | ) |
| \| | | |
| \/ | / |
グループと範囲
| 文字 |
マッチング |
例 |
|---|---|---|
| () | Group (グループ) | m (e|y)は"me"と"my"と一致します。 |
| (a|b) | aまたはb | m(e|y)は"me" ("Comment"内)、"me"、"my"と一致します。 |
| [abc] | 範囲(aまたはbまたはc) | m(ey)は"me" ("Comment”内)、"me"と"my"と一致します。 |
| [a-q] | aからqまでの文字 | m(a-m)は"me" ("Comment”内)と"me"と一致しますが、"my"には一致しません。 |
| [0-7] | 0から7までの数字 | 201[0-5]は”2016”には一致しませんが、"2010"から"2015"までのすべての年と一致します。 |
グループでキャプチャーされた表現は、$記号を使って再使用できます。複数のグループをキャプチャーした場合は、数値を$記号に追加することで、キャプチャーされた順序に対応するようにします。
たとえば、正規表現Y(\d{2})Q(\d{2})で一致する式Y16Q02を再作成する必要があるとします。この場合、取り込んだ文字を保持しておくだけで、元の式を再作成できます。新しい正規表現をQuarter 02 of year 2016 (2017年第2四半期)とする場合、新しい正規表現Quarter $2 of year 20$1がこれと一致します。
数量詞
| 文字 | マッチング | 例 |
|---|---|---|
| * | 0以上 | work\w*は"working"に一致し、"work"と"works"にも一致します。 |
| + | 1以上 | work\w+とすると"working"だけでなく"works"にも一致します。ただし、"work"とは一致しません。 |
| ? | 0または1 | work(s?)は"work"と"works"と一致しますが、"working"には一致しません。 |
| {3} | ぴったり3 | 20\d{2}は”2016”や”2000”から”2099”の間の他の番号と一致します。 |
| {3,} | 3以上 | 20\d{2,}は”2016”や"20"で始まる”2000”以上の数字と一致します。 |
| {3,5} | 3、4、5のいずれか | 20{1,2}は"2016"、および"200"から"2099"までのすべての数値と一致します。 |
| [0-7] | 0から7までの数字 | 201[0-9]は"2016"、および"2010"から"2019"までのすべての数値と一致します。 |