2013年3月4日月曜日

「正規表現 次の一歩」はもっとお勧め

3/2(土)、勤務明けの寝不足状態で「正規表現 次の一歩」を受講してきました。
睡眠補給にとサウナに寄ったもののまともに寝ることができなんだ。orz

INDD 2013 Tokyo (spring)と被ってしまったため、前回より参加者は少なめだったものの参加費4000円は十分取り戻せました^^ 講座内容を一部書きますので、読む人は1000円分は得するかも知れません。

正規表現を学んでも使う機会がないと忘れます。で、前回いつ使ったかな?と思い出せば、「お勧め--はじめての正規表現」以来だったのですね。だから当然、忘れます。そんな方のために前半は前回の復習。

前回blogに書きそびれましたが、コンピューターはどう解釈するか?から入ってきます。
総当りで頭から順番にです。止まったら戻りません。次に進みます。なんかこの辺は、むか~し「DTPの勉強会 in 千葉」でやったような気がします。チューリングマシンの停止問題あたりで難しすぎて理解できなかったけど(^^;A m-ogawaさん、元気ですか?


( ) と [ ] の違い

ごくごくたま~~に正規表現を使う ( ) と [ ] が分からなくなります。文字クラスなんて専門用語が出ると何となく分かってるようで、実はよく分かってないという有様。そんなアチキのような初心者は ( ) と [ ] の違いを実際にやってみると分かったような気になります。恥を忍んで質問しました(^^;A

(高畑|張本?)勲で検索するとマッチするのが、高畑勲、張本勲、張勲。 
 一方[高畑|張本?]勲で検索すると 
勲、勲、|勲、張勲、本勲、?勲がマッチ。


[ ] 内でメタ文字として使用されるのは

ハイフン(-)とサーカムフレックス(^)のみ。

ドット、クエスチョン、アスタリスク、プラス、パーレン、カーリーブラケットなどはメタ文字として解釈されません(ツールによるかもしれない)
初心者はパーレン内でメタ文字として使用された文字はスクエアブラケット内でもメタ文字として解されると勘違いしてしまいます。

はい、ここまで読んでアチキレベルの初心者は500円は得しましたね。


先読み、戻り(後)読みはアンカー(位置)の一種

初心者が混乱するところがココです。しかし、しかしですよ、なぜか講座を受ければ分かったような気になります。^が行頭、$が行末の位置を指定するように先読み・戻り読みは位置を指定するのです(開眼した気分)。

・高畑勲
・張本勲
・ヴィンセント・ヴァン・ゴッホ
の行頭の中黒のみを検索する場合、^・。行頭位置(^)の後に中黒です。
同様に「勲」の前に空白スペースを入れたい場合、勲$で検索、スペース+勲で置換。勲の後に行末位置です。
しかし先読みでもできます。(?=勲)です。

・高畑|
・張本
|

(?=パターン)は(ここでは勲)前の位置だったのです。
パターンとマッチ箇所は違います。停止位置条件とでも訳したらいいのでしょうか?

停止位置に文字を挿入できます。メールの返信の冒頭に>を付けたものは
日時:平成25年3月17日(日)18時30分〜21時00分
場所:池袋西口公園
参加費:2,000円(当日支払)
定員:30名
^で検索、>で置換すると
>日時:平成25年3月17日(日)18時30分〜21時00分
>場所:池袋西口公園
>参加費:2,000円(当日支払)
>定員:30名
同様に(?=勲)で検索、スペースで置換すると
・高畑 勲
・張本 勲
・ヴィンセント・ヴァン・ゴッホ
先読みは頭から順に→方向に進み停まった先にパターンがある。
ただエディターでやると位置が指定されるためマッチ箇所が出てきません。(?=勲)勲でマッチした文字が表示されます。
戻り(後)読みでやる場合、(?<=[畑本])で検索、スペースで置換。



張本勲を張 勲に置き換えを先読み、戻り読みを使ってやる場合、

・張||

停まる位置は本の前後、本の前が戻り読み、後が先読みです。

(?<=張)本(?=勲) で検索、スペースで置換です。

はい、ここまで読んで1000円^^ 講座を受ければ会費の3倍(12000円)の価値があります。



以下は自己課題と解答(間違ってたら指摘してください)
・高畑勲
・張本勲
・ヴィンセントヴァンゴッホ 
行頭の中黒はそのまま、氏名の中にある赤字の中黒を除きたい。
戻り読みを使っての検索は(?<=[ァ-ヾ])・だよな。


最も大事なこと

DTPも機能が豊富になり使い方を覚えるのに四苦八苦し、いつの間にか原理原則、定理公式から離れ、結果、なんとなく使っている。正規表現やらJavaSciptなど習得しなければならないものが山ほどある。仕事も時間に追われ、とりあえずトラブルが発生した時の対処法、Tipsは集めるものの基本が出来てないから応用がきかない。自分がやってた時、こんな状態でした。今も変わらないと思います。ひょっとして当時よりひどくなってるかも知れません。

糸井重里氏のいう「多忙は怠惰の隠れ蓑」状態です。以下は引用。
多忙なときっていうのは、現実的な問題がいっぱいあって、それを現実的に解決したり、解決しかかっていたりしている状態だ。そういうときというのは達成感もあるし幸福感もある。ちっぽけなヒロイズムもまんぞくさせてくれるかもしれない。
だが、そういうときに欠けていきやすいものがある。
「なぜ」という疑問とか、大きな視野とか、人間の感情とか、すぐに役立たないようでいて大事なことだ。
このセミナーにはすぐに役立たないようでいて大事なものがある。お勧めです。

0 件のコメント:

コメントを投稿