正規表現でマッチした文字列を再利用するには

正規表現でマッチした文字列を再利用するには後方参照(Backreference)を利用します。

以下はsedを用いた例です。

echo 'abc12345' | sed -E 's/([a-z]{3})([0-9]{5})/\1FOO\2BAR/g'

英小文字3文字の末尾に"FOO"という文字列を付け足し、数字5文字の末尾に"BAR"という文字列を付け足します。

sed01.png

echo 'abc12345' | sed -E 's/([a-z]{3})([0-9]{5})/\1FOO\2BAR/g'

([a-z]{3}) : 1つ目のパターンマッチ。英小文字3文字にマッチする。
([0-9]{5}) : 2つ目のパターンマッチ。数字5文字にマッチする。
\1 : 1つ目のパターンにマッチした文字列を参照する。
\2 : 2つ目のパターンにマッチした文字列を参照する。

パターンマッチはカッコ()の中で定義します。

以上。

Leave a Reply

Your email address will not be published. Required fields are marked *