正規表現の基本を学びましょう:パターンのマッチ方法、文字クラス・量指定子・グループを使ったテキストの検索と検証。
ステップガイド
正規表現とは何かを理解する
正規表現(regex)は検索パターンを定義する文字の連続です。テキストの検索・検証・抽出・置換に使われます。ほぼすべてのプログラミング言語と多くのテキストエディタでサポートされています。
リテラル文字のマッチ
もっとも単純な正規表現はリテラル文字列です。パターン `cat` は "concatenate" や "scat" の中の "cat" にマッチします。デフォルトでは大文字小文字を区別するため、`Cat` は "cat" にマッチしません。
文字クラスを使う
`[abc]` はa、b、cのいずれか1文字にマッチ。`[a-z]` は小文字アルファベット。`[0-9]` は数字。`[^abc]` はa、b、c以外の文字。短縮形:`\d` = 数字、`\w` = 単語文字(英数字/_)、`\s` = 空白文字。
量指定子を使う
`*` = 0回以上 | `+` = 1回以上 | `?` = 0または1回 | `{3}` = ちょうど3回 | `{2,5}` = 2〜5回。例:`\d{3}-\d{4}` は "555-1234" のような電話番号セグメントにマッチ。量指定子の後に `?` を付けると最短マッチ(遅延)になります。
アンカーとグループを使う
`^` は行頭にアンカー、`$` は行末にアンカー。`(abc)` はキャプチャグループを作成。`(cat|dog)` は "cat" または "dog" にマッチ。例:`^\d{5}$` はちょうど5桁のZIPコードのみにマッチします。
無料ツールを使う
Regexテスター
よくある質問
Q: リテラルのドットやカッコをマッチするには?
A: `.`、`*`、`+`、`?`、`(`、`)`、`[`、`]`、`{`、`}`、`^`、`$`、`|`、`\` などの特殊文字はバックスラッシュでエスケープする必要があります。`\.` でリテラルのドット、`\(` でリテラルの括弧にマッチします。
Q: 欲張りマッチと最短マッチの違いは?
A: 欲張り量指定子(デフォルト)はできるだけ多くマッチします。最短量指定子(`?` を追加)はできるだけ少なくマッチします。例:`<.+>` は "<b>bold</b>" 全体にマッチしますが、`<.+?>` は "<b>" だけにマッチします。
Q: 正規表現をテストするには?
A: Regexテスターツールを使えば、パターンを入力してテキストを貼り付けると、マッチした部分がリアルタイムでハイライト表示されます。キャプチャグループや詳細なマッチ情報も確認できます。