正規表現のチートシート(早見表)を作りました。
「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個以上に一致(最長一致) 検索文字が1文字のみの場合検索できない |
||||
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 | 改行に一致 元ファイルの改行コードに関係なくソフトで設定された改行コードとして扱われる Unix用(LF)として扱われる |
||||
× | × | \r | 復帰に一致 元ファイルの改行コードに関係なくソフトで設定された改行コードとして扱われる Unix用(LF)として扱われる。 |
||
\t | タブに一致 | ||||
\v | 垂直タブに一致 なぜか改ページにも一致 |
||||
\f | 改ページに一致 | ||||
\d | 半角数値に一致 (処理系によっては全角にも一致) 全角にも一致 全角に一致しない |
||||
\D | \dに一致するもの以外に一致 (改行を含む空白文字にも一致) |
||||
\w | 単語に一致([A-Za-z0-9_]に同じ) (ただし、処理系によってまちまち) |
||||
\W | \wに一致するもの以外に一致 (改行を含む空白文字にも一致) |
||||
\b | 単語の境界の位置(\wと\Wが切り替わる位置) (ただし、処理系によってまちまち) ([\b]でバックスペースに一致する処理系も) [\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」の扱いは、各テキストエディタで扱いが違うので注意が必要です。