[スタッフコラム]作業効率化だよ~(エンジニアじゃなくても)正規表現で行こうっ!!

こんにちは。テレワークが続いているため、Netflixに加えてhuluもサブスクしてしまったYMOでーす。

早速ですが、みなさん「正規表現」って知っていますか?
エンジニアの方はプログラムのロジックでマッチング処理をするときに使うのでモチロン知っていると思いますが、 プログラミングをしないビジネスパーソンは使いどころが無いから知らない人も多いのでは無いでしょうか?

使いどころが無いんですが、、、いざという時に力を発揮することがあるので、どんなものか紹介してみます!

正規表現とは

簡単に言うと、検索する文字列が条件にてマッチするかを判定して、マッチするかしないかでにより処理を加えることができます。
んなこと言われても分かりませんよね・・・。では↓で超代表的な正規表現(パターン)を説明します。

超代表的な正規表現

^ → 先頭の文字か判定
$ → 行の終わりか判定
. → 任意の1文字にマッチ
* → 直前の1文字の0回以上の繰り返し(意味わかりませんねw)
+ →直 前の1文字の1回以上の繰り返し

例えば、文章から「やまだ」君と「やーまだ」君を纏めて検索したいとき、とっても困りますよね。
正規表現をつかって「やー*まだ」と検索すれば、「やまだ」&「やーまだ」が検索にHITします。

「 * 」は直前の1文字(↑に場合は「ー」)が0回以上繰り返されていればマッチしますので、「ー」はあっても、なくても、条件にマッチします。
さらに、*の直前の「ー」は0回以上はマッチしますので、2個以上連続していても条件にマッチします。
だから「やーーーーーーまだ」にもマッチしますので、「やまだ」「やーまだ」「やーーーーーーまだ」を一括で検索したり、まとめて「山田」に置換できたりします。とっても便利ですね!

どんなことができるの?

まだイメージがわかないと思いますので、簡単なサンプルを紹介しましょう。

【メールなどの引用文にある先頭の「>」をトル】
引用文を本文として使いたいときがありますよね?そんなときには正規表現です!
引用文の行頭には「>」がついているので削除したいですよね!
でも引用された数により「>」や「>>」など「だいなり」の数が変わりますし、本文にも「>」が含まれているケースがあります。
例えば、以下の引用文があるとします。

====================
やまだです。
>やーまだです。
>やーーまだです。
>>やーーーーまだです!
>>やまーだ電気です!!
>>>※トムブラウン風に。
====================

↓↓↓

====================
やまだです。
やーまだです。
やーーまだです。
やーーーーまだです!
やまーだ電気です!!
※<トムブラウン>風に。
====================

検索条件を「^>+」を検索して削除してあげたら、無事に変換されます。
意味は「^【先頭に】>【だいなりが】+【1回以上連続して続く】」文章にマッチさせているので、先頭にある連続した「だいなり」だけを消すことができました。
注釈分の中にある「>」は無事に残っていますね。

次いってみよー!

【HTML内のAタグを検索してURLとアンカーテキストを抽出する】
上記では文章のマッチングと削除をしましたが、次は特定の文字列を抽出します。
WEBサイトのリニューアルなどで現行サイトのリンクリストをエクセルにリスト化したいときがありますが、そんなときには正規表現です。例えば下記のAタグがHTMLソース内にあるとします。

====================
<a href=”aaa.html”>やまだ</a>
<a href=”bbb.html”>やーまだ</a>
<a href=”ccc.html”>やーーーーまだ</a>
====================
↓↓↓

====================
aaa.html やまだ
bbb.html やーまだ
ccc.html やーーーーまだ
====================

検索条件を「(<a href=”)(.*)(”>)(.*)(</a>)」、置換内容を「¥2¥t¥4」にして実行すると、無事に変換されますのでエクセルにコピペしたらリスト完了です。 大量のリンクリストを作成する場合などでも1発です。※説明すると長くなるので控えさせていただきます。。

使えるツールは?

正規表現は文字列のマッチングと処理を実行できる仕組みです。
各種プログラム言語でももちろん、WordやSublime Textなどのエディタツールでも正規表現の機能がありますので、気になった人は是非試してみてください。

以上、YMOでしたー!

トップへ戻る