読者です 読者をやめる 読者になる 読者になる

正規表現とは?よく使う置換の「正規表現」まとめ(マーケター向け)

正規表現とは

使えるようになれば良いので、雑に説明すると、「いい感じに文字を指定するための表現方法」です。たまにデータを集めていると、同じ規則でいらない文字列がくっついてくることが有りますよね。そういうときに簡単にその文字列を指定して削除できます。

tanaka miho 1310042
yamana haha 335566
iida asahaka 333333

こんなデータあって、「数字だけいらない」というときに、数字だけを排除できます。なんだか便利そうですね。



今回の課題

HTMLソースコードから引っ張ってきたリストを、サイト名だけ取得したい。

■元のソースコード
f:id:cland741953:20161204224423p:plain

■理想の姿
f:id:cland741953:20161204224533p:plain

このくらいの量であれば手作業でやってもいいですが、もしこれが100個もあったら、いくら手があっても足りませんね。というところで正規表現くんが役立つのです。

いきなり課題を解く前に、よく使う正規表現の指定方法4つだけ学びましょう。

今回使うエディタ

「mi」というテキストエディタを使います。他のエディタでも置換機能で「正規表現」が使えればなんでも構いません。

mi:http://www.mimikaki.net/



よく使う正規表現①:全て指定「.*」

普段自分が使っていて「.」と「*」をセットでよく使うので、ほぼ2つをセットで使いながら慣れていけばよいと思います。一番最初って何がなんだかわかんないですしね。

具体的に例を示していくので、置換後がどんな姿になるのかを予想しながら見ていってください。

「.」と「*」の使い方と例

「aaaaabbbbbcccc」
という文字列があったときに

①「.*」→置換「k」→置換後「k」
(全部kに変換)

②「a.*」→置換「k」→置換後「k」
(aの後に続く全ての文字をkに変換)

③「b.*」→置換「k」→置換後「aaaaak」
(bを含むbの後に続く全ての文字をkに変換)

④「...」→置換「k」→置換後「kkkkcc」
(なんでもいい3文字をkに変換していく
 →aaa/aab/bbb/bccc/cc
 →k /k /k /k /cc
 →kkkkcc

⑤「.」→置換「k」→置換後「kkkkkkkkkkkkkk」
(なんでもいい1文字をkに変換していく)


よく使う正規表現②:先頭指定「^」

正規表現での置換は、普通の文字列置換と違って、変換したい文字の位置を特定しやすいです。この「^」によって、先頭を指して置換を行うことができます。

「^」の使い方と例

「naka nana」という文字列の場合

①「^」→置換「ta」→「tanaka nana
(先頭にtaを追加)

②「^na」→置換「sui」→「suika nana
(先頭のnaをsuiに置換)

③「na」→置換「u」→「uka uu」
(naをuに置換)

④「^.*ka」→置換「sui」→「sui nana
(先頭からkaまでの文字を、suiに置換)


よく使う正規表現③:末尾指定「$」

先程の先頭の位置指定とは逆に、お尻指定です。

「$」の使い方と例

「naka nana」という文字列の場合

①「$」→置換「ta」→「naka nanata」

②「na$」→置換「mi」→「naka nami」

③「na」→置換「mi」→「mika mimi」


よく使う正規表現④:数字指定「[0-9]」

1文字指定は「.」でできますが、場合によっては「数字の場合だけ」というように、さらに絞り込みたいときがあるでしょう。そのときには「[0-9]」という指定方法です。の中にいれる数字は自信で指定することが可能です。

の使い方と例

「a1a2a3a4a5」という文字列の場合

①「[0-9]」→置換「b」→「ababababab」

②「[0-3]」→置換「b」→「abababa4a5」


今回の課題を解く

①課題
f:id:cland741953:20161204224423p:plain

②「正規表現検索」にチェックをいれる
f:id:cland741953:20161204224846p:plain:h400

③まずは先頭のいらない文字列を排除「.*">」
f:id:cland741953:20161204224920p:plain

④後ろのいらない文字列を削除「<.*」
f:id:cland741953:20161204230909p:plain

〜ついでに「^」と「$」も使ってみる〜

⑤一番最初の余計な改行を消す「^$ \n」
f:id:cland741953:20161204225038p:plain

⑥先頭に矢印をくっつける。指定:「^」/置換文字「▶」
f:id:cland741953:20161204225335p:plain


正規表現で作業効率アップ

私はベンチャー企業という限られたリソースしかない企業でマーケティングっぽいことやっているため、集めてきた情報を整理するときに、結構置換を使っています。テキストエディタの普通の置換でも対処できることもありますが、それだけだと「先頭文字列を指定」などのような具体的な置換が行なえません。

正規表現を初めて見て調べてみたときは「サルにもわかる正規表現入門」というサイトで学ぼうとしたのですが、わかりにくかったです。それはいきなり細かい話をいくつも並べ立てられるからでした。正規表現になれるためには、簡単な処理だけ覚えて、そこから根を広げていけばよいと思います。

今回挙げた4つの置換方法は、私がよくつかっているものなので、非エンジニアの方の仕事にとっても効率を上げる場面があるかもしれません。特にマーケターの方はぜひ使ってみてください。