Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.
ある種の人たちは一つの問題に直面したときに「よし、正規表現を使おう」と考える。すると、彼らは二つの問題を抱えることになる。――Jamie Zawinski
コンピュータの世界には、「正規表現」という呪文がある。これはたしかに呪文の一種であり、[0-9]や(¥w+-)+¥wのような奇怪な呪文を用いることによって秘儀をなすとされる——たとえば、文字列の検索だとか置換だとか。
「正規表現」という日本語は「regular expression」の訳語と思われる。何が正規で何がregularなんだかよくわからないが、この場合の「正規」というのはつまり「曖昧さがない」というくらいの意味でとらえたらいいのではないかと思う。
世の中には「曖昧検索」というのがあり、大文字と小文字とか、全角と半角とか、「ささいなことにはこだわらねぇ」という鷹揚な御仁が、適当に打ち込んで検索すれば該当が出てくる、ということになっている。これはこれで便利なのだが、あまりに絞り込めない場合、逆に「大文字はいらねぇの」というような状況が発生する。のみならず、「英文字3文字の後に数字1文字」とか「aまたはeを含む4文字」のような、ちょっとニッチで抽象的な検索をしたいというマニアックな層にもナウな正規表現がバカウケである。
正規表現が便利な呪文だとしても、どこでもそこでも使えるというわけではない。呪文を成立させるにはちゃんとした術具が必須である。ある種のソフトウェアはこの呪文を受け付ける。私が折に触れて利用しているWZ editorもその一つ。
→WZソフトウェア
私はフリーランスのライターであったその昔からこのWZの正規表現に学び、少なくとも呪文書(レファレンス)を参照しながら呪文を詠唱できるレベルにまでは到達した。詠唱準備に若干時間をとられるものの、大量のテキスト処理をしなければならない場合には大変効果的である。ライター時代には、この呪文のおかげでだいぶ時間を節約したものだ。私のライターとしての評価の一端は、おそらくこうした「面倒な手作業」を素早く終わらせられることにあったのだと思う。
製造業に勤めるサラリーマンとなった最近ではこの呪文の出番はだいぶ減ったが、今日はEvernoteからタグ一覧を引きずり出すのに、久しぶりにこの呪文を詠唱した。Evernoteともあろうものが、タグ一覧をテキストにはき出すことができないのである。
なんでタグ一覧なんか欲しいのよ、というと、ATOKに単語登録しよう、と思い立ったからであった。そうしておけば、簡単な変換でタグを打つことができ、時間短縮になる。そのためには、Excelに読みがなと単語一覧を書き出さないといけない。
ところが、どうやってもタグ一覧を取り出せない。苦肉の策で、Web版のEvernoteを表示させ、html保存してみたところ、htmlソースの中に、なんとかタグらしきものが含まれていることを確認した。とはいえ、めちゃめちゃに複雑なhコード(JavaScript?)の中にタグが混在しており、そのままでは取り出せない。
やむを得ず、WZ editorの置換処理で不要な文字列の削除をしていった。単純に置換できるものを除いていくと、最終的にはかなりこみ入った文字列が残ったが、これも偉大なる正規表現の呪文によって、面倒な文字列を一発消去することに成功し、やっとタグ一覧を入手した次第である。
ああ、ありがたきは正規表現の福音。呪文のありがたみをひしひしと感じた一日であったことよ。
【74更新】 正規表現は身を助く――ニセモノの魔法使い http://t.co/Y4MWkliDla [Hacks&Tips(コツ), Software&Webs(ソフトウェア&ウェブ), ATOK, Evernote, WZ Editor ]
大学の時に
章立てされたテキスト形式の論文>HTML変換
なんてバイトをやっており、正規表現のおかげで楽勝でございました。