Excelの置換機能は非常に便利ですが、データの内容によっては十分でないケースもあります。こうしたときに使えるものとして正規表現があります。

ダウンロードしたデータを見たらHTMLタグだらけでビックリ

先日別のサービスへの移行を検討するために、データをダウンロードしました。

そのデータの中身を確認したところ、一部のデータが

<div><ul><li><font size=”4″>あいうえお</font></li></ul><div><font size=”4″><br /></font></div><div><div><font size=”4″>かきくけこ</font></div><div><font size=”4″><font color=”#ff0000″>さしすせそ</font>たちつてと<span style=”background-color:rgb( 255 , 255 , 0 )”>なにぬねの</span></font></div></div></div>

といった状態になっていました。

ご存じの方も多いかもしれませんが、<div>などの記号はホームページなどを作成する際に使うHTMLタグといわれるもの。

元のサービス側でデータを保存する際にHTMLタグを使っていたようで、データをエクスポートしたら、特定の項目のデータが上記のような形で出力されてしまいます。

移行先のサービスではHTMLタグを読み込む機能はありませんので、ここからHTMLタグをすべて取り除かなければなりません。

つまり最終的には、上記のデータを

「あいうえおかきくけこさしすせそたちつてとなにぬねの」

に変えたいわけです。

Excelには検索・置換機能がありますので、通常であればこれを使ってデータをキレイにしていきます。

ところがExcelの検索機能では、<div>と</div>を同時に検索・置換することができません。

さらに<font color=”#ff0000″>だと、指定した色が変われば”#ff0000″の部分が違ってきますので、何種類あるか洗い出す必要があります。

一カ所くらいなら力業でなんとかできますが、こうしたデータが何十個もあるとさすがにExcelではお手上げです。

さてどうしたものかと悩んでいたときに思いだしたのが「正規表現」でした。

広告

正規表現を使ったHTMLタグの置換

「正規表現」については以前からなんとなく知っていましたが、ルールやら使い方が面倒に感じていて、きちんと学んだことはありませんでした。

今回は他によい方法が思いつかず、改めて使い方を調べてみたところ、今回のようなケースでも一気にHTMLタグを取り除くことができることがわかりました。

残念ながらExcelの置換機能で正規表現を使うことはできませんので、今回はサクラエディターというソフトと正規表現を組み合わせて、HTMLタグを取り除きます。

今回悩ましいのは、<>で囲まれる中身の文字が変化する点ですが、正規表現で解決する方法を検討します。

正規表現では

.(ピリオド)が任意の一文字を示します。

さらに+(プラス)を何かの文字の後ろにつけると、直前の文字を1回以上くり返すという意味になります。

これらを使って

<.+>

とすれば<>内に何らかの文字があるものをまとめて検索できるはず。

サクラエディターに先ほどのサンプル文字列を貼付けます。

検索メニューを呼び出し先ほどの<.+>を検索条件に入力します。このときに「正規表現」にチェックをつけるのを忘れないように。

カーソルが先頭にある状態で「下検索」をクリックすると・・・

あれ?なぜかすべての文字列が検索された状態になってしまいます。

実は正規表現を使うと、最も長い範囲で検索がされてしまうようです。

要するに、途中の「>」を全て無視して、文の最後の「>」までまとめて検索してしまうということです。

最も短い単位で検索するには検索したい文字列の最後に?(クエスチョンマーク)をつける必要があります。

検索する際の正規表現を<.+?>に変更して改めて検索してみると・・・

このように<>で囲まれた部分だけを検索することができました。

ここまでできれば後はカンタン。

検索メニューではなく置換メニューを呼び出して

置換前:<.+?>
置換後:(空白のまま)

と入力して、正規表現に忘れずにチェックを入れて「すべて置換」をクリックします。

結果はこの通り、HTMLタグを一回の処理ですべて取り除くことができました。

なお、想定通りに置換できない可能性もありますので、試される際はデータのバックアップを取るようにしてください。

広告

目の前のトラブルをスキルを身につける機会と捉える

正規表現はさらに複雑な条件設定ができたり、使うツールによって書き方が少しずつ違ったりと極めようとするととても時間がかかるものです。

ただ、今回のようなシンプルなケースであれば、そこまで時間をかけずに調べることができました。

つまり

データの置換にかかる作業を短縮できる時間 > 正規表現について調べる時間

となっていました。

こうした状態であれば、新しいことを調べてでもやる価値はありますが、もしこの不等号が逆だった場合どうすべきか?

もし将来的にも使えそうなスキルであれば、こうした機会に学べばよいと考えます。

目の前の問題を解決するために学ぶ方が、新しいスキルも身につきやすいものです。

調べる時間がかかりすぎるのは問題ですが、目の前のトラブルをチャンスと捉えて新しいスキルを身につけてみてはいかがでしょうか。

投稿者

加藤 博己
加藤 博己加藤博己税理士事務所 所長
大学卒業後、大手上場企業に入社し約19年間経理業務および経営管理業務を幅広く担当。
31歳のとき英国子会社に出向。その後チェコ・日本国内での勤務を経て、38歳のときスロバキア子会社に取締役として出向。30代のうち7年間を欧州で勤務。

40歳のときに会社を退職。その後3年で税理士資格を取得。

中小企業の経営者と数多く接する中で、業務効率化の支援だけではなく、経営者を総合的にサポートするコンサルティング能力の必要性を痛感し、「コンサル型税理士」(経営支援責任者)のスキルを習得。

現在はこのスキルを活かして、売上アップ支援から個人的な悩みの相談まで、幅広く経営者のお困りごとの解決に尽力中。

さらに、商工会議所での講師やWeb媒体を中心とした執筆活動など、税理士業務以外でも幅広く活動を行っている。
広告