▲ゴト技top| 第11章 1| 2| 3| 4| 5| 6| 7| 8| 9| |
[第11章●そろそろ正規表現はいかがですか] 7… 最後のメタキャラ |
[2004.02.12登録] |
石田豊 |
ここでの私の意図は、詳細で煩瑣なところに立ち入ることなく、正規表現のキホンのところをざっくりお伝えするということです。そしてそれを読んで頂いた方のシゴトの現場で使ってもらいたい。ということ。 その観点からいえば、説明しなければならないメタキャラクタや表現は、もうたいして残っていません。今回でそのすべてが説明完了ということになります。この「章」はこれでまだ7回目に過ぎません。比較的詳しく述べてきたと思うのですが、それでもたった7回で「文法」のすべてが説明し尽くされてしまうのです。シンプルでしょ。 最後にのこったのは「or表現」と前回積み残した「グループ化」の残りです。 グループ化については、前回は「後方参照」つまり、置換欄で使用するやりかたについて説明しましたが、用途はそれだけではありません。 「悲しき高野豆腐」で例に引いた 富士(写真)?フ[ィイ]ルム(株式会社)? → 富士写真フイルム株式会社 を思い出して下さい。ここには「(写真)?」「(株式会社)?」の2カ所でグループ化を使っています。「写真」または「株式会社」が1回あるかないか。このグループ化は置換欄で再利用するためではなく、文字列をいわばひとつの文字として取り扱いたいために採用しています。 ただ、この検索は「写?真?」「株?式?会?社?」とすることでも、実用的にはほぼ問題がありません。こういうふうにすると「富士写フイルム株」なんかもヒットしますが、そんな書き方はないやろ、と割り切れば、こうした書き方でもOKです。しかし、もしかすると「富士フイルム会」は(会社の名前とは別に)存在するかもしれません。代理店の団体とか社員の親睦団体にありがちな名前です。「富士フイルム会」を「富士写真フイルム株式会社」に置換してしまうってのは、致命的です。 正規表現を使う上での「恐怖」はこういうところに存在します。短絡的な思考で検索文字列を指定すると、取り返しの付かない置換をやってしまう場合があるのです。 こうした悲劇を招来しないためにも、グループ化は有効です。 どうしてもグループ化を使いたくなるのは、「or表現」との組み合わせをしたいときです。メタキャラクタ「|」(たいていのキーボードではシフト+\キーで出すことができます)は「AかBか」というような「or表現」を示すためのものです。この「AかBか」は A|B と書きます。「|」の使い方をもう少し丁寧に言えば「直前の表現と直後の表現のいずれかに合致」ということです(実はこの「|」については系によってさまざまな解釈があり、いくつものバリエーションが存在するのですが、以降K2Editor、miではこうであるというところを書きます)。 問題は「直前の表現」とはどこまでを指すか、ということです。 NTT東|西日本を「NTT東日本」と「NTT西日本」に合致させたいと思ってそう書いても、(少なくともK2Editor、miでは)うまくいきません(うまくいく系もあります)。これは「NTT東」および「西日本」に合致してしまうのです。 だからこの場合はグループ化を併用して NTT(東|西)日本 と書かなければなりません。でもこれだったら文字クラスを使ってNTT[東西]日本と書く方が自然ですよね。 「|」が使いたくなるのは、2文字以上の文字列どうしの「or」です。この連載のサブタイトル(?)は「{石田豊はこう|あなたはどう}考える」というものですが、この「{}」を半角のカッコに変えることで、「石田豊はこう考える」「あなたはどう考える」の両方にヒットします。 ね。この「|」もなかなか応用範囲が広そうでしょ。 (田村|谷)亮子 (三浦|設楽)りさ子 (岩崎|益田)宏美 森(鴎外|林太郎) ****** 以上で、正規表現の文法説明を終わりにします。これらの「文法」はどちらのエディタでもヘルプに一覧表が掲載されています。わからなくなれば、その表を見ればいいのです。表での表記はわかりにくいかもしれませんが、この7回の連載をあらかじめ読んでおけば、どういうものか、どう使うかはハッキリ認識できると思います。 で、その後は、実践あるのみです。最初は間違い・失敗も多いでしょうし、時間も(手作業より)かかるかもしれません。しかし、慣れというのは恐ろしいもので、しばらく悪戦苦闘しているうちに、平然と正規表現が思い浮かぶようになります。 そうすりゃ、しめたもの。たとえば5万人の名簿を整形するなんてニーズが生じても、ほいほいと気軽にとりかかることができるようになります。 その作業が終わった時、正規表現を覚えたことの効果をしみじみと感じることでしょう。おそらくそのきっかけを作ってくれた人、つまり私ですね、に菓子折のひとつも贈りたくなるでしょう。それは自然な気持ちだと、私は思いますけどね。 で、次回からは、実践篇。具体的ないくつかの例を通して、正規表現の練習をしてみたいと思います。 |
この記事は
|
お読みになっての印象を5段階評価のボタンを選び「投票」ボタンをクリックしてください。 |
投票の集計 |
投票[ 8 ]人、平均面白度[ 4.6 ] ※「投票」は24時間以内に反映されます※ |
ご意見をお聞かせください |
|
←デジタル/シゴト/技術topへもどる | page top ↑ |
▲ゴト技top| 第11章 1| 2| 3| 4| 5| 6| 7| 8| 9| |
|ポット出版
|ず・ぼん全文記事|石田豊が使い倒すARENAメール術・補遺|ちんまん単語DB| |
|
|