レッスン 2

リテラルとメタ文字

文字クラス、量指定子、アンカー、エスケープ。

regex 構文の多くは 2 つに分かれます。リテラル(自分自身にマッチ)と メタ文字(意味を持つ特殊記号)。

リテラルとエスケープ

文字と数字は通常自分自身にマッチします: cat は部分文字列 cat にマッチ。

. * + ? [ ] ( ) { } | ^ $ \ などのメタ文字には注意が必要です。

  • .任意の 1 文字 にマッチ(一部モードでは行終端を除く)
  • リテラルのドットにマッチするにはエスケープ: \.

迷ったら 文字クラス で句読点: [.] はエスケープ議論なしでドットにマッチ。

文字クラス

[abc] は集合 abc のいずれか 1 文字にマッチ。

有用な省略形(JavaScript 風):

クラス意味
\d数字 [0-9]
\w「単語」文字(エンジン依存;多くの場合 [A-Za-z0-9_]
\s空白
\D, \W, \S否定版

範囲: 小文字は [a-z]。クラス内でリテラルハイフンが必要なら - を先頭か末尾に。

量指定子

直前の atom を繰り返す:

量指定子意味
*0 回以上
+1 回以上
?0 回または 1 回
{3}ちょうど 3 回
{2,5}2 から 5 回
{2,}2 回以上

Greedy vs lazy: + は可能な限り多く消費;+? は可能な限り少なく。区切りフィールドの解析で重要。

アンカー

アンカー意味(典型的)
^入力または行の先頭(multiline フラグ時)
$入力または行の末尾
\b単語境界

^https:// は URL が文の途中ではなく先頭(または行頭)から始まることを保証します。

グループ化

( ... ) は atom をグループ化し、量指定子をグループに適用: (ab)+ababab などにマッチ。

要点

小さくテストした部品 からパターンを組み立てる: アンカー + クラス + 量指定子。各セグメントに 1 つの役割があれば複雑なパターンも読みやすくなります。

実践したいときは関連する DevCove ツールを使えます。任意であり、このレッスンの必須部分ではありません。

関連ツールを開く

コース概要へ戻る