正規表現の備忘録です。
例えばエクセルでリストを作っている時に、下図のようにパスとアセット名が一緒になった状態からパスとアセット名を別セルに分離したい場面があったりします。
しかしエクセルの標準機能でのやり方が分からないので、秀丸の正規表現で分離することにしました(もっとお手軽な方法があればご教授ください)。
まずはリストを秀丸にコピペします。
次に置換ダイアログを表示。
正規表現をONにして「検索」と「置換」に下図のように入力します。
.+¥¥¥f¥f
¥0¥t¥1
検索欄の文字列の意味は‥
「1文字以上の文字列で末尾は¥」と「以降の文字列」にグループを分ける
文字列の後ろに¥fを追加するとグループ分けできます。
置換欄の文字列の意味は‥
「0番のグループの文字列」「水平タブ」「1番のグループの文字列」
‥です。
元のパスの¥による階層の区切りの数が行によってバラバラですが、検索欄の指定がたったこれだけでOKなのは秀丸の正規表現には「最長の一致」という性質があるからのようです。
それから、文字列をグループに分けて置換に元の文字列を残しつつ形態を変える方法についてはこちらの記事でとても丁寧に解説されています。
‥という訳で置換を実行したら下図にようになりました。
全体を選択してコピーします。
エクセルにペースト。はい、分離できました!
もしエクセルにペーストした時にタブスペースを挟んで文字列が別セルに分かれない場合には、ホームタブの「区切り番号」で区切り文字を「タブ」にチェックを入れてからもう一度ペーストしてみてください。
以上になります。
あ、ちなみにセルA1とセルB1の文字列を結合するのは簡単です。
どこかのセルに「=A1&B1」のように入力すれば文字列が合体します。