はじめに
何らかのWebサイト上のコンテンツ一覧みたいなものを雑にコピペするとこんな感じになることってありませんか?
1.はじめに
1分
再生
2.こんな設定をする
24分
再生
3.設定を確認する
12分
再生
4.おわりに
3分
再生
模擬テスト①
模擬テスト②
私の場合、受講中のUdemy講座の全容をざっと確認したいときに、コースの内容
からタイトルだけをさくっと取得したいな~と思いコピーしたところ、上記な感じになって白目になりました。
Webサイトから雑にコピーすると案外あるあるではと思っています。
前述の残念テキストから、下記のようなシンプルきれいなリストをさくっと作りたい。
1.はじめに
2.こんな設定をする
3.設定を確認する
4.おわりに
模擬テスト①
模擬テスト②
そんな願望を、テキストエディタ(今回はサクラエディタ)の置換機能と正規表現を使ってさくっと実現する自分的チートシートを記載します。
実行環境&ツール
- Windows10
- サクラエディタ v2.4.1.2849 32bit (tag v2.4.1)
試していませんが、これ以外のテキストエディタでも可能だと思います
手順
基本の流れ
-
Ctrl + R
またはツールバーの検索 > 置換
から置換ダイアログを起動 -
正規表現
チェックボックスにチェックを入れる - 後述する
置換前
置換後
をそれぞれの入力欄に入力 - すべて置換(置換失敗してもCtrl+Zでやり直せるのでとりあえずまとめてやってしまう)
1. 「再生」だけを含む行を一括削除
置換前:^再生\r\n
置換後:(何も入力しない)
2. 「○○分」だけを含む行を一括削除
置換前:^[0-9]+分\r\n
置換後:(何も入力しない)
3. 空行を一括削除
置換前:^[\r\n]+
置換後:(何も入力しない)
(おまけ)「00:00」形式の時間だけを含む行を一括削除
今回の例だと出てきていませんが、時間数を00:00
形式で記載していることも間々あります。そんなときに有効な正規表現です。
置換前:^[0-9]{2}\:[0-9]{2}\r\n
置換後:(何も入力しない)
解説
-
[0-9]{2}
で2桁
の数字を指定できます
(おまけ)数字とセクション名を.
ではなくタブで区切りに変更
たとえばスプレッドシートに貼り付ける際、ナンバリングしやすくするために.
区切りではなくタブ区切りにしたいこと、ありますよね。そんな時に有効です。
置換前:^([0-9]{1,})(.)
置換後:$1\t
解説
- カッコでくくると検索文字列をグルーピングできます
-
[0-9]{1,}
で1桁以上の数字を指定できます - 置換後の
$1
:$n(nは1以上の整数)
がカッコでグルーピングした文字列を参照できる。$1はカッコでグルーピングした文字列のうち、1つ目のグループを意味します
おわりに
こういう地味な作業、1つ1つ調べればやり方は見つかる便利な時代ですが、暗記するほど利用頻度も高くなく、意外と毎回調べていて毎回時間がかかるものだと思います。
この記事に書かれているものがばちっとハマる方は少ないかもしれないですが、こういった自分的チートシートを作っておくと作業効率アップになるかなとも思います。
なお、正規表現さんとは顔見知り程度の関係なので、ご指摘等大歓迎です。よろしくお願いいたします。