| パターン | 意味 | マッチ例 |
|---|---|---|
| . | 任意の1文字(改行以外) | a.c → abc, a1c, a!c |
| * | 0回以上の繰り返し | ab*c → ac, abc, abbc |
| + | 1回以上の繰り返し | ab+c → abc, abbc(acは不可) |
| ? | 0回または1回 | colou?r → color, colour |
| [abc] | 文字クラス(a, b, cのどれか) | [aeiou] → 母音1文字 |
| [a-z] | 範囲指定 | [0-9] → 数字1文字 |
| [^abc] | 否定(a, b, c以外) | [^0-9] → 数字以外 |
| (a|b) | OR(aまたはb) | (cat|dog) → cat, dog |
| パターン | 意味 | 使用例 |
|---|---|---|
| ^ | 行の先頭 | ^Hello → 行頭のHello |
| $ | 行の末尾 | end$ → 行末のend |
| \b | 単語の境界 | \bcat\b → "cat"単独 |
| \B | 単語境界以外 | \Bcat\B → scatter内のcat |
^Hello World$| パターン | 意味 | 使用例 |
|---|---|---|
| {n} | ちょうどn回 | a{3} → aaa |
| {n,} | n回以上 | a{2,} → aa, aaa, aaaa... |
| {n,m} | n回以上m回以下 | a{2,4} → aa, aaa, aaaa |
| *? | 0回以上(最少マッチ) | a.*?b → 最初のa...b |
| +? | 1回以上(最少マッチ) | a.+?b → 最短のa...b |
| パターン | 意味 | 同等の表現 |
|---|---|---|
| \d | 数字1文字 | [0-9] |
| \D | 数字以外 | [^0-9] |
| \w | 英数字+アンダースコア | [a-zA-Z0-9_] |
| \W | 英数字+アンダースコア以外 | [^a-zA-Z0-9_] |
| \s | 空白文字(スペース、タブ、改行) | [ \t\r\n\f] |
| \S | 空白文字以外 | [^ \t\r\n\f] |
| パターン | 意味 | 使用例 |
|---|---|---|
| (abc) | キャプチャグループ | (\d+)-(\d+) → グループ1, 2 |
| (?:abc) | 非キャプチャグループ | (?:\d{3})- → キャプチャしない |
| \1 | 後方参照(1番目のグループ) | (\w)\1 → "aa", "bb" |
| (?<name>...) | 名前付きキャプチャ | (?<year>\d{4}) |
| パターン | 意味 | 備考 |
|---|---|---|
| \. | ドット(文字として) | . だけだと「任意文字」になる |
| \\ | バックスラッシュ | 文字列内では \\\\ と書く |
| \* | アスタリスク | 量指定子ではなく文字として |
| \( | 開き括弧 | グループではなく文字として |
| \[ | 開き角括弧 | 文字クラスではなく文字として |
| 用途 | パターン |
|---|---|
| メールアドレス(簡易) | [\w.+-]+@[\w-]+\.[\w.-]+ |
| URL(簡易) | https?://[\w./%-]+ |
| 電話番号(日本) | 0\d{1,4}-?\d{1,4}-?\d{4} |
| 日付(YYYY-MM-DD) | \d{4}-\d{2}-\d{2} |
| IPアドレス(簡易) | \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} |
| HTMLタグ | <[^>]+> |
| 郵便番号(日本) | \d{3}-\d{4} |
| 16進数カラーコード | #[0-9a-fA-F]{6} |
import re re.findall(r'\d+', 'abc123def') # ['123'] re.sub(r'\s+', ' ', text) # 連続空白を1つに
'abc123def'.match(/\d+/g) // ['123'] text.replace(/\s+/g, ' ') // 連続空白を1つに