$Date: 2018-07-07 06:49:13 +0900 (2018/07/07 (土)) $
$Revision: 1347 $
正規表現 先後読み
先読み
(?=…)
-
… の部分の正規表現にマッチするけど処理対象にならない。
-
マッチする正規表現を絞り込むときに使う。
-
(?<=…) の正規表現の後ろの位置にマッチする
後読み
(?<=…)
-
… の部分の正規表現にマッチするけど処理対象にならない。
-
マッチする正規表現を絞り込むときに使う。
-
(?<=…) の正規表現の後ろの位置にマッチする
コード例1
たとえば HogeHoge Corp → HogeHoge Corporation と置換する場合
s!(?<=HogeHoge )Corp!Corporation!
とできる。
コード例2
while( <> )
{
# VALUE "CompanyName", "TODO: <会社名>" で
#
#
# "CompanyName", "xxxxxx" → "CompanyName", "HogeHoge Corporation (C) 2012 All rights reserved."
# に置換する
#
# "CompanyName", は置換対象の絞り混みのためにマッチするが、置換対象にならない
# 正確には "CompanyName", のパターンの一番最後の位置にマッチする
s!(?<="CompanyName", )"[^"]+"!"HogeHoge Corporation (C) 2012 All rights reserved."!;
print;
}
参考