こんにちは、わたあめです。今日はテキストエディタ「サクラエディタ」の置換についての記事です。
という疑問があったので、今回の記事では置換前の一部の文字列を残したまま、一部だけ置換するという置換のやり方です。正規表現という特殊な文字の指定の仕方を使った置換方法です。それでは、いってみましょう!
やりたいこと:文字列を一部を残したまま置換したい
やりたいこととしては、文字列の一部を残したまま、一部だけ置換したいです。イメージしにくいと思うので、例を挙げて説明して行こうと思います。
例としては、Excelの関数式の列はそのまま行の値だけ置換していきます。こんな状況よくあって、一度覚えておけば便利だなと思って理解深めました。今回は以下のようなExcel関数式を置換していきます。
A~Cの列の1行目から3行目をそれぞれの合計を算出している式になります。これを、1行目から5行目の合計を算出する式に置換していきます。置換後の式は以下のようになります。
つまりは、合計(SUM)する列はそのまま行の範囲を変更するための置換になります。
置換方法
手順は以下の通りです。
- サクラエディタに文字列(例でいうExcelの式)を貼り付ける
- 上メニューの[検索]>[置換]を選択
- [正規表現]にチェックを入れる
- [置換前:と[置換後]に文字列を入れて[置換]または[すべて置換]ボタンをクリック
置換前の文字列には「(.)1:(.)3」を、置換後の文字列には「${1}1:${2}5」と指定しています。これらの正規表現での文字指定の意味を細かく見ていきましょう。
置換文字列の解説
置換前
置換前の文字列について解説です。
括弧の中にある文字列のドット「.」は任意の一文字になります。任意とは一文字なら「A」でも「B」でも「C」でもなんでもOKということです。(なんなら"あ"や"綿"でもなんでも引っかかる。)列を指定する英語(A列B列C列)どれでも検索対象となります。
次に、ドット「.」をかこっている括弧「()」ですが、これは式集合で括弧の中の文字列をグループ化しています。文字列をグループでまとめるということですが、今回は後々置換後に参照するために、1文字でもグループ化しておきます。
この「.」と「()」を使うことでA1やB1やC1の列のA~Cは何でもいいから1行目から3行目を指定している式が検索に合致=置換前の対象文字列となります。
置換後
置換後の文字列について解説です。
「$n」(※nは数字)は置換前で指定したグループを参照するものです。今回nを波括弧「{}」で囲っていますが、これは安全な番号指定参照と呼ばれ、数字が続く場合に有効です。例えば「$16」といった"$1"の後に数字の"6"が続く場合に、参照番号nは1だよと「${1}」と波括弧で括って参照番号を明示的に指定しています。
「${1}」は置換前の1つ目の括弧を、「${2}」は二つ目の括弧の内容を、置換前からそのまま参照しますという意味です。
正規表現とは
正規表現とは文字列をパターンで指定する表現です。正規表現を使えば、文字列を条件を指定して表記できます。
今回の例だとセル「A1」か「B1」か「C1」、この3つの文字列を、「.1」と一つの表現でまとめて表現することが出来ています。サクラエディタで利用できる正規表現は以下にまとまっています。
さいごに
さいごまでお読みいただき、ありがとうございました。この指定の仕方は私自身も忘れそうだったので備忘がてら記事にしてみました。サクラエディタ高度な置換処理ができるので良いですね。それでは、また!