正規表現のチートシート(早見表)を作りました。
「Dreamweaver」「Sublime Text 3」「PhpStorm」「Atom」の4つのテキストエディタに対応しています。
Webデザイナー、フロントエンドエンジニアが、テキストエディタを使って検索や置換をするとき用に作りました。もちろん、資料をよく作るディレクターや、Web制作関連ではない人でも積極的に使ってほしいです。
よく使うものばかり載せているので、だいたいのプログラミング言語でも使えます。
正規表現 画像版・PDF版
PDF版が一番見やすいと思います(軽いし)。
正規表現とは
正規表現とは、文字を集合(パターン)で表す方法です。
検索を例にとると、通常の検索は入力した文字のみの検索ですが、正規表現を使うと「aからzまでの文字」というパターンなどで検索できます。
テキストエディタで検索する場合は、Ctr+F(MacはCmd+F)で検索ボックスを表示させます。
「Dreamweaver」だと「正規表現を使用」をチェック、「Sublime Text 3」や「Atom」だと「.*」をチェック、「PhpStorm」だと「Regex」をチェックしてください。
正規表現 HTML版
※特に記述がない限り、改行文字(改行・復帰)は含まない
※通常のプログラミング言語でもだいたいのものは動作します
※動作を保証するものではありません
= Dreamweaver
= Sublime Text 3(おそらくSublime Text 2でも同じ)
= Phpstorm(おそらくWebstromでも同じ)
= Atom
| 正規表現 | 説明 | ||||
| a | 「a」に一致 | ||||
| . | 任意の1文字に一致 | ||||
| a* | 「a」が0個以上に一致(最長一致) |
||||
| a*? | 「a」が0個以上に一致(最短一致) | ||||
| a+ | 「a」が1個以上に一致(最長一致) | ||||
| a+? | 「a」が1個以上に一致(最短一致) | ||||
| a? | 「a」が0個か1個に一致(最長一致) | ||||
| a?? | 「a」が0個か1個に一致(最短一致) | ||||
| a{1,3} | 「a」が1〜3個連続に一致(最長一致) | ||||
| a{1,3}? | 「a」が1〜3個連続に一致(最短一致) | ||||
| a{3} | 「aaa」に一致 | ||||
| a{1,} | 「a」が1個以上に一致(最長一致) | ||||
| a{1,}? | 「a」が1個以上に一致(最短一致) | ||||
| [abc] | 「a」か「b」か「c」に一致 | ||||
| [0-9] | 半角数値に一致 | ||||
| [0-9A-Za-z] | 半角英数字に一致 | ||||
| [-0-9] | 半角数値かハイフンに一致 (ハイフンを最後やエスケープでも可) |
||||
| [^abc] | 「a」か「b」か「c」以外のいずれかに一致 (改行などの空白文字にも一致) |
||||
| abc|def | 「abc」もしくは「def」に一致 | ||||
| (abc) | 「abc」をグループ化(キャプチャする) | ||||
| (?:abc) | 「abc」をグループ化(キャプチャしない) | ||||
| $1 | 1番目にキャプチャしたものを展開 |
||||
| \s | 空白文字(改行、復帰、タブ、スペース等)に一致 (処理系によっては全角スペース含む) |
||||
| \S | \sに一致するもの以外に一致 | ||||
| \n | 改行に一致 |
||||
| × | × | \r | 復帰に一致 |
||
| \t | タブに一致 | ||||
| \v | 垂直タブに一致 |
||||
| \f | 改ページに一致 | ||||
| \d | 半角数値に一致 (処理系によっては全角にも一致) |
||||
| \D | \dに一致するもの以外に一致 (改行を含む空白文字にも一致) |
||||
| \w | 単語に一致([A-Za-z0-9_]に同じ) (ただし、処理系によってまちまち) |
||||
| \W | \wに一致するもの以外に一致 (改行を含む空白文字にも一致) |
||||
| \b | 単語の境界の位置(\wと\Wが切り替わる位置) (ただし、処理系によってまちまち) ([\b]でバックスペースに一致する処理系も) |
||||
| \B | \bではない位置 | ||||
| ^a | 文字列の先頭の「a」に一致 (処理系によっては行の先頭(改行の後)にも対応) |
||||
| × | × | \Aa | 文字列の先頭の「a」に一致 | ||
| a$ | 文字列の末尾の「a」に一致 (処理系によっては行の末尾(改行の前)にも対応) |
||||
| × | × | a\z | 文字列の末尾の「a」に一致 | ||
| × | × | a\Z | 文字列の末尾の「a」に一致(末尾の手前に1つの改行文字可) | ||
| × | × | × | \< | 単語の始まりの位置 |
|
| × | × | × | \> | 単語の終わりの位置 |
|
| \x61 | 「a」に一致(16進エスケープ) | ||||
| × | \141 | 「a」に一致(8進エスケープ) | |||
| \cJ | 改行に一致(\cの後に英字で制御文字に一致) | ||||
| (?=def) | 「def」の左の位置 | ||||
| abc(?=def) | 「def」の左の位置にある「abc」に一致 | ||||
| (?=def)de | 「def」の最初の「de」に一致 | ||||
| abc(?!def) | 「def」の左ではない位置にある「abc」に一致 | ||||
| × | (?<=abc) | 「abc」の右の位置 (長さが固定された文字列のみ検索可の処理系がほとんど) |
|||
| × | (?<=abc)def | 「abc」の右の位置にある「def」に一致 (長さが固定された文字列のみ検索可の処理系がほとんど) |
|||
| × | bc(?<=abc) | 「abc」の最後の「bc」に一致 (長さが固定された文字列のみ検索可の処理系がほとんど) |
|||
| × | (?<!abc)def | 左に「abc」が来ない「def」に一致 | |||
| \\ \. \* \^ \$ \+ \| \? \( \) \[ \] \{ \} |
エスケープが必要な文字(必要ない場合や処理系もあり) |
例
| [\s\S] | 改行、復帰、タブ、スペース等を含む任意の1文字に一致 |
| (?<!\.)class | 頭にドットがつかない「class」に一致 |
| ^(?!abc).* | 「abc」で始まらない文字列(処理系により行の場合もあり)に一致 |
| ^((?!abc$).)*$ | 「abc」で終わらない文字列(処理系により行の場合もあり)に一致 |
| ^((?!abc).)*$ | 「abc」を含まない文字列(処理系により行の場合もあり)に一致 |
| <([^"'>]|"[^"]*"|'[^']*')*> | HTMLのタグ(コメント含む)に一致( <([^"']|"[\s\S]*?"|'[\s\S]*?')*?>でも可) |
まとめ
今回確認したテキストエディタ(ソフト)は、「Dreamweaver」「Sublime Text 3」「PhpStorm」「Atom」ですが、こうして見ると、Dreamweaverで正規表現は少し機能が劣る感じがします。また、「\n」の扱いは、各テキストエディタで扱いが違うので注意が必要です。
正規表現チートシート PNG画像