牢獄機械文書群 目次 » 計算機 » 現在地

正規表現(サーチパターン) .* と .\{-} の違い

2014-12-03

正規表現は :s や substitute() などで文字を置換する際に使います。

その中でも、 .*  と  .\{-}  はよく使いますが、区別がまぎらわしいので説明します。

部品をざっくり説明すると

. …「どんな文字かは問わず、なにか1文字」
* …「直前の文字を0回以上繰り返す」
\{-} …「最小限で直前の文字を0回以上繰り返す」という意味です。

実際に置換する際の指定範囲を説明します。

a.*b

a から b まで。対象の行が a 以降 b を複数含んでいる場合は最後の b まで。範囲は最大限になる。

a.\{-}b

a から b まで。対象の行が a 以降 b を複数含んでいる場合は最初の b まで。範囲は最小限になる。

例文:吾輩は猫である。名前はまだ無い。どこで生まれたか
(a に「猫」、b に「。」を指定。)
猫.*。 … 「猫である。名前はまだ無い。」が範囲になる。
猫.\{-}。 … 「猫である。」が範囲になる。

← もどる
inserted by FC2 system