正規表現チートシート
クイックリファレンス:アンカー、文字クラス、量指定子、グループ、後読み/先読み、フラグ。クリックでコピー。
用途
正規表現でいつもなんとなくしか思い出せない構文を、検索・印刷可能な形でまとめたチートシートです。アンカー、文字クラス、量指定子、グループ、ルックアラウンド、フラグの主要カテゴリに加え、よくあるパターンの例も用意しています。任意のパターンをクリックでコピーでき、フィルタ入力で絞り込めます。実際にテキストに対して試したいときは 正規表現テスターと組み合わせてください。
使うべきタイミング
(?<=foo)が必要なときに、?が<の前か後ろか思い出したいとき。- 誰かに正規表現を説明する場面で、Stack Overflow のタブを漁るより、安定した参照ページがほしいとき。
- UUID、メール、ISO 日付のような出発点となるパターンをコピーして調整したいとき。
- 各フラグの違いを確認したいとき — 特に
s(dotall)とm(multi-line)の混同を解きたい場面。
よくある注意点
- 方言に注意。 ここの内容はほぼ JavaScript/現代の PCRE ですが、機能差があります。lookbehind が JS に入ったのは ES2018、
x(extended)は PCRE/Python であり JS にはなく、possessive 量指定子++は PCRE 限定です。 mは「複数行マッチ」ではありません。mは^と$の意味(行単位 or 文字列単位)を変えます。改行をまたいで.を当てたいならs(dotall)が必要です。- greedy は食べすぎます。
<.*>を<a>b</a>に当てると全体にマッチします。lazy 版<.*?>か、より具体的な<[^>]+>を使ってください。 - 正規表現は HTML や JSON のパーサではありません。 ここでの「よくあるパターン」は単発のスクレイピングや簡易検証向けで、構造化入力を文字列として扱うのには向きません。
- メールの正規表現は常に「外れ」です。 ここの例はおおまかな形チェックです。本番の検証はメールでの確認に頼ってください。
- コピペした「完璧な」正規表現を信用しないこと。 デプロイ前に Regex Tester で実データに対して試してください。