2011年12月12日月曜日

正規表現の復習 3

久~しぶりに正規表現を復習して理解してねぇーなと感じたのが?。

サルにもわかる正規表現入門
Windows?だと WindowsとWindow にマッチ
Windows ?98だと Windows98とWindows 98 にマッチ
が頭から抜け落ちてました。
? の場合は、直前の文字がまったくないか、1つだけあるという意味

吉田印刷所さんのアンケートを例に
»概要
このページではIllustrator(イラストレーター)・Photoshop(フォトショップ)・InDesign(インデザイン)・Acrobat(アクロバット)のソフトウェアにおいて、DTPでよく使用するバージョンのアンケートを行っております。

このアンケートは以下のアンケートの2011年冬版です。

(.+)で検索すると行の最後に出現する閉じ括弧までマッチします。


で、(.+?)で検索すると最初に出現した閉じ括弧でマッチ。
以下、以降の出現箇所でマッチ。


馬鹿の一つ覚えで、これのみ覚えてました(;´▽`A`` 

ですから、直前の文字がまったくないか、1つだけあるという意味が頭から抜け落ちて、この用法の?が出現すると頭が??だったんです。サル以下です。。。orz

とはいえ、正規表現はフリーのエディタで学べますんで、お金のないアチキにはピッタリ。


で、注意したいのがエディタ選び。人様のつぶやきを見て知ったのですが、エディタによっては以下の文字が
à è ì ò ù  á é í ó ú ý  â ê î ô û  ã ñ õ  ä ë ï ö ü ÿ   ç Ç ¿ ¡ © ® ™
こんな風に変わりますので注意してください。
a e i o u  a e i o u y  a e i o u  a n o  a e i o u y   c C ソ
いくつかのフリーエディタを入れていたのですが、この症状の出たエディタは全て削除しました(さくらエディタはユニコード対応版ならOKだということは後で知った)


話は替わって、webからテキストをエディタにコピペしますと以下のような文に出くわします。
井伊直政〔中名格:次鋒〕:3,600 ← “本能寺の変“後、武田領を侵食した際、召抱えた武田家遺臣〔”赤備え“の井伊隊として名を馳せる〕
~ココまでの主要7将で、”61,000“人

小早川秀秋〔大名格:右翼主力軍〕:15,000 ← この”小早川の寝返り“が戦況を一変させたことはあまりにも有名!!
長宗我部盛親〔大名格:最右翼挟撃軍〕:6,600
大谷吉継〔中名格:後詰〕:4,100 ← “らい病患者“であったにも関わらず、石田三成への”友愛“精神から西軍へ参戦!!
小西行長〔中名格:左翼主力軍〕:4,100
吉川広家〔中名格:右翼先鋒〕:4,000 ← 当初から、”東軍への内応組“であり、結果的に、毛利軍本隊の参戦を食い止めたことで有名!!
~ココまでの主要7将で、”70,700“人
ダブルクォーテーションがバラバラです===≡≡≡。゚┌(゚´Д`゚)┘゚。

正規表現で一度に置換するには?と考えていたのですが、アチキの頭では3段階かかりました。エディタでやるとマクロになります。
1. 正規表現[“”]で検索→"に置換
2. ".+?"で検索→“$&”に置換(さくらエディタのユニコード対応版)
3. “"と"”から"を削除

流星さんから回答をいただきました^^

app.selection[0].contents = app.selection[0].contents.replace(/[“”]([^“”]+?)[“”]/g,"“$1”");

正規表現とjavascriptの合わせ技ですので、アチキにとってはD難度なのですが、まずは読み解きからはじめさせていただきます<(_ _)>

0 件のコメント:

コメントを投稿