IBMi海外記事2016.12.13
21世紀のソースを置き換える
Ted Holt 著
前号の21 世紀のソースを検索するで、ソース・メンバー内の正規表現の使い方をご紹介しました。検索は素晴らしいのですが、システムが見つけたものを他の物に置き換えなければならない場合があります。正規表現を使いながら、テキストを置き換える方法をここにご紹介します。
ソース・メンバーから始めましょう。
Stat10 から Stat90 の 9つの定数があります。Stat を Status_に置き換えてみましょう。検索されたすべての Stat を Status に置き換えられないのは明らかです。そうしたら、大変なことになるでしょう。
そうではなく、正規表現を使って Stat の後に数字が来るインスタンスを検索しましょう。
検索文字列を含む行のみ LPEX が表示してくれるよう「All」ボタンをクリックしました。
では置き換えましょう。さて、置き換え文字列は何でしょうか。一致した文字を Status_ と置き換える場合、数字は取り除かれますが、それはしたくありません。その数字をそのまま置き換えたいのです。そのためには、キャプチャリング (つまり、キャプチャー) グループを使います。
検索ボックスで \d を括弧で囲み、この検索文字列と一致するものはすべて、最初のキャプチャリング・グループに保存するよう指示します。置換ボックスで、$1 式を使って LPEX が最初のキャプチャリング・グループを使う場所を示します。この式が Stat を Status_ に、Stat に続く数字をそのまま置き換えます。
テキストの検索と置換に正規表現を使うのは、今までいろいろとやってきたことと変わりません。何回かやってみれば、なぜ難しいと思ったのか不思議に思うでしょう。