【開発】【正規表現】正規表現チートシート - j-komatsu/myCheatSheet GitHub Wiki

正規表現チートシート

目的

正規表現を用いて効率的に文字列を操作・検索するための基本構文と応用例をまとめます。


インデックス

  1. 基本的な文字列マッチ
  2. 特殊文字
  3. 繰り返しの指定
  4. アンカー (行頭・行末)
  5. キャプチャと参照
  6. グループ化とオプション
  7. 文字クラス
  8. 否定文字クラス
  9. 先読みと後読み
  10. 応用例

1. 基本的な文字列マッチ

  • 目的: 特定の文字列を検索。
  • 構文:
    pattern
    
  • 使用例:
    1. abc という文字列を検索。
      abc
    2. xyz という文字列を検索。
      xyz
    3. 123 という文字列を検索。
      123

2. 特殊文字

  • 目的: 特殊な文字や意味を持つ記号を扱う。

  • 構文:

    特殊文字 説明
    \. 任意の1文字
    \d 数字
    \w 英数字またはアンダースコア
    \s 空白文字
    \b 単語境界
  • 使用例:

    1. 任意の1文字を検索。
      a.c
    2. 数字を検索。
      \d+
    3. 単語境界を利用して単語を検索。
      \bword\b

3. 繰り返しの指定

  • 目的: 文字列の繰り返しを指定して検索。

  • 構文:

    繰り返し 説明
    * 0回以上の繰り返し
    + 1回以上の繰り返し
    ? 0回または1回
    {n} n回の繰り返し
    {n,} n回以上の繰り返し
    {n,m} n回からm回の繰り返し
  • 使用例:

    1. aが1回以上繰り返される文字列を検索。
      a+
    2. bが0回以上繰り返される文字列を検索。
      b*
    3. 正確に3回繰り返されるcを検索。
      c{3}

4. アンカー (行頭・行末)

  • 目的: 行の開始や終了を指定して検索。

  • 構文:

    アンカー 説明
    ^ 行頭
    $ 行末
  • 使用例:

    1. 行頭がabcで始まる文字列を検索。
      ^abc
    2. 行末がxyzで終わる文字列を検索。
      xyz$
    3. 行頭と行末が同じ文字列である場合を検索。
      ^abc$

5. キャプチャと参照

  • 目的: 部分一致を保存して再利用。

  • 構文:

    (pattern)
    \n
    
    記号 説明
    () グループ化とキャプチャ
    \1 最初のキャプチャにマッチ
  • 使用例:

    1. 同じ文字が連続する部分を検索。
      (\w)\1
    2. 最初のキャプチャを参照する例。
      (\d{3})-(\d{4}) \1
    3. 異なるグループを参照する例。
      (\d{2})-(\d{2}) \2-\1

6. グループ化とオプション

  • 目的: 複数のパターンをまとめて検索。
  • 構文:
    (pattern1|pattern2)
    
  • 使用例:
    1. catまたはdogを検索。
      cat|dog
    2. appleorange、またはbananaを検索。
      apple|orange|banana
    3. 数字または文字を含む部分を検索。
      \d|\w

7. 文字クラス

  • 目的: 特定の文字集合を指定して検索。
  • 構文:
    [abc]
    
  • 使用例:
    1. ab、またはcのいずれかにマッチ。
      [abc]
    2. 任意の数字にマッチ。
      [0-9]
    3. 小文字アルファベットにマッチ。
      [a-z]

8. 否定文字クラス

  • 目的: 特定の文字を除外して検索。
  • 構文:
    [^abc]
    
  • 使用例:
    1. abc以外の文字にマッチ。
      [^abc]
    2. 数字以外の文字にマッチ。
      [^0-9]
    3. 小文字以外の文字にマッチ。
      [^a-z]

9. 先読みと後読み

  • 目的: 特定のパターンの前後を条件として指定して検索。

  • 構文:

    種類 構文 説明
    肯定先読み (?=...) 指定パターンの前に一致
    否定先読み (?!...) 指定パターンの前に不一致
    肯定後読み (?<=...) 指定パターンの後に一致
    否定後読み (?<!...) 指定パターンの後に不一致
  • 使用例:

    1. abcの後に続くdefを検索。
      abc(?=def)
    2. 123の前にあるxyzを検索。
      (?<=xyz)123
    3. abcの前にないdefを検索。
      (?!abc)def

10. 応用例

  • メールアドレスの検出:
    [\w.%+-]+@[\w.-]+\.[a-zA-Z]{2,}
  • 日本の電話番号の検出:
    \d{2,4}-\d{2,4}-\d{4}
  • HTMLタグの検出:
    <[^>]+>

⚠️ **GitHub.com Fallback** ⚠️