正規表現チートシート

正規表現チートシート 00 フィーチャー画像

テキストを扱う方は、正規表現がどれほど便利かを実感されているでしょう。これはテキストの小さな文字で、単語の見た目に関する詳細なルールを作成することを可能にします。これらのルールは、ドキュメント内の単一の文字を一致させるようなシンプルなものから、「a」または「c」で始まり、「ism」で終わるすべての単語を探すような複雑なものまでさまざまです。

このチートシートをダウンロード

メールアドレスを以下に入力して、このPDFチートシートを受け取ってください。

必須の正規表現

正規表現(略してregex)は、Linux環境でテキストを文字ごとに検索するために至るところで使用されています。この正規表現チートシートは、時折少しリフレッシュが必要な人にとって役立つでしょう。

ただし、一つ重要なことは、使用可能な正規表現のセットは、ソフトウェアが使用する標準の種類によって大きく依存するということです。例えば、一般的なLinuxターミナルはPOSIX標準を使用することが多い一方で、VimやPerlは非標準定義を使用します。

メタキャラクター説明
文字マッチング
Aドキュメント内の「a」の文字のインスタンスを探して一致させます。a は「ant」、「cat」、「anna」に一致します。
.制御文字を除く任意の単一の文字と一致させます。c.t は「cat」、「cut」、「cot」に一致します。
*前の表現を0回以上繰り返します(貪欲モード)。12*3 は「13」、「123」、「1223」、「12223」に一致します。「m.easier」などの「.」と一緒に使用でき、「maketecheasier」に一致します。単独で「.」を使用するのは無意味です。すべてに一致し、完全な結果を返します。
+前の表現を1回以上繰り返します。12+3 は「123」、「1223」、「12223」に一致します。
?前の項目をオプションにします。ma?ke は「make」、「mke」に一致します。
^文字列の先頭から一致させます。^he は「hello」、「hell」、「help」、「he is a boy」に一致します。
$文字列の終わりから一致させます。ed$ は「acted」、「bed」、「greed」に一致します。
範囲マッチング
( … )文字または式のグループ化。(ak) は「make」、「take」に一致します。
{ n }前の項目を正確にn回一致させます。12{3}5 は「12225」に一致します。
[ … ]括弧内の単一の文字を一致させます。[abc] は「a」、「b」、または「c」に一致します。
[^ … ]括弧内で定義されているものを除く任意の文字と一致させます。a[^b]c は「aec」、「acc」、「adc」に一致しますが、「abc」には一致しません。
クラスマッチング (POSIX)
[:alpha:]英字の任意の文字を探して一致させます。[[:alpha:]]ut は「but」、「cut」、「rut」に一致します。
[:alnum:]任意の文字と数字を探して一致させます。[[:alnum]]tack は「stack」と「5tack」に一致します。
[:blank:]タブまたはスペースのいずれかのインスタンスを探して一致させます。[[:blank:]]Hello は「 Hello」に一致します。
[:space:]任意の空白文字を探して一致させます。[[:space:]]World は「 World」に一致します。
[:upper:]任意の大文字を探して一致させます。[[:upper:]]+ は「HELLO」、「FAntastic」、「wORld」に一致します。
[:lower:]任意の小文字を探して一致させます。[[:lower:]]+ は「heLLO」、「FAntastic」、「world」に一致します。
[:punct:]任意の句読点文字を探して一致させます。\w+[[:punct:]] は「Hey!」、「Hi.」、「You?」に一致します。
[:cntrl:]任意の制御文字を探して一致させます。\w+[[:cntrl:]]$ は「end^M」、「word^M」、「this^M」に一致します。
[.ng.]「ng」のいずれかの二重音節を探して一致させます。bad[.zh.] は「badge」に一致します。
[=n=]「n」のすべてのダイアクリティカルな文字を探して一致させます。[=a=]\w+ は「ànna」、「ápple」、「âble」に一致します。
クラスマッチング (Perl/Vim)
\B単語の境界ではない任意の文字を探して一致させます。\B+\b は「hello 」の「o 」と「 hi」の「h」に一致します。
\w任意の文字と数字を探して一致させます。\w{5} は「world」、「12345」、「w0r1d」に一致します。
\W任意の記号を探して一致させます。\w{2}\W\b は「as.」、「ha!」、「me?」に一致します。
\d任意の数字を探して一致させます。\d{3} は「111」、「777」、「888」に一致します。
\D数字ではない任意の文字を探して一致させます。\D{3} は「ant」、「ba!」、「!#*」に一致します。

| \s | 任意の空白文字を探して一致させます。 | a\w+(i|y)sm\s は「altruism」、「albinism」、「aneurysm」に一致します。 | | \S | 非空白文字を探して一致させます。 | \S{5} は「123hi」、「hi!^&」に一致します。 | | \A | 行の先頭にない単語の先頭を探します。 | \A{2} は「Hello world」における「He」と「wo」に一致します。 | | \Z | 行の終わりでない単語の終わりを探します。 | \z{2} は「Hello world」における「lo」と「ld」に一致します。 | | 制御文字 | | | | | | パイプの左側または右側のいずれかの表現に一致させます。 | col(o|ou)r は「color」、「colour」に一致します。 | | – | 一致させる文字の範囲を指定します。[a-z]、[A-Z]、[1-9]、[a-zA-Z1-9]で主に使用されます。 | a[a-z]c は「abc」、「acc」、「adc」に一致します。 | | \ | 特殊文字をエスケープして普通の文字に変えます。 | a\*c は「ac」に一致します。 | | \n, \r, \t | それぞれ改行、復帰、タブ文字に一致させます。 | \w{5}\t\w{5}(\n|\r) は「Hello World」に一致します。 | | \b…\b | 境界内の単語に一致させます。 | \bTech\b は「Make Tech Easier」の「Tech」に一致します。 | | *複雑な表現 | | | | [0-9]{3}-[0-9]{4} | 任意の三桁および四桁の数字の列を探して一致させます。 | この表現は「123-1234」、「111-1111」、「777-1234」に一致します。 | | ([0-9]{3}-)?[0-9]{3}-[0-9]{4} | 二つの三桁数字と一つの四桁数字に一致させます。 | この表現は「123-123-1234」、「000-111-0001」、「777-5678」に一致します。 | | .{1,3} | 一文字から三文字の長さの任意の単語を探して一致させます。 | この表現は「at」、「it」、「can」に一致します。 | | ([A-Z])\w+ | 大文字で始まる任意の単語に一致させます。 | この表現は「Hello」、「World」、「Hey」に一致します。 | | e[([:digit:]|[:alnum:])]c | 「e」と「c」の間の任意の英数字に一致させます。 | この表現は「e1c」、「e5c」、「e7c」に一致します。 | | [^0-9[:upper:]]+ | 数字で始まらない完全に大文字の単語を探します。 | この表現は「HELLO」、「WORLD」、「HEY」に一致します。 | | “.+” | 引用符で囲まれた単語を見つけて一致させます。 | この表現は「Hello, world!」に一致します。 |

画像クレジット: Unsplash