自転車操業日記

自転車と組版ソフトについての備忘録。

CS4:正規表現を使ってみる

2011-05-06 14:00:13 | たまにはしごとだって
文法をまとめた資料が見つからなくてちょっと苦労したけど,これはべんりだ!

有機化学がらみの植物の本なので,わけのわからん物質名がいっぱい出てくる。そのスジでは入門書という位置づけなので,かな表記のあとに英字がくっついたりして,ばりばりの和欧混植になる。ケルセチン3-O-ルチノシドquercetin 3-O-rutinoside,みたいなかんじ。

当然のことながら,和欧間の4分アキは設定しているので,英字のハイフンと邦字の間にスペースが入る。著者校正で,これをつめろ,という指示が入った。しかし,地の文はもちろん,ここだけとりだしても「ルチノシド」と「quercetin」のあとには4分アキが入ってくれたほうがつごうがいい。だから,和欧間のアキ設定は変えたくない。といって,英文ハイフンの字送りを一括で詰めてしまうと,英数字の間にあるやつがつまりすぎてしまう。
数が多いので見落としも怖い。で,前から気になっていた正規表現を試してみた。

この場合,全角文字の前のハイフンの字送りを変えてやるということになる。「検索置換」のダイアログで,検索文字列の条件をさがすのだけど,「全角文字」というオプションが出てこない。「漢字」はあるのだけど。じゃあアルファベットと数字以外の文字の前にあるハイフンっていう条件で探したらできた。

あらかじめ字詰めを設定(-250)を設定した文字スタイルを作っておく。

検索置換のダイアログで,検索文字列を
-(?![\l\u\d])
とする。

置換形式のボックスで適用すべき文字スタイルを設定して検索,置換。15ページほどのなかに,50か所近くあったのが一瞬で修正できた。

これを段落スタイルに埋め込んでおくこともできる(段落スタイルのウィンドウの中に,「正規表現スタイル」というオプションがある。ここで上記のような指定を行えばよいのです)。そうすると,赤字が入ってこれに引っかかる文字列があとから挿入されると,自動的につめの指定が適用されるので,再検索/置換を行わなくてよくなる。

正規表現文字列の書式がまとめてある資料が見つからなくて苦労した。サイトの資料はわかりにくいよ……。試行錯誤で見つけたかんじ。

ちなみに,

-(?![\l\u\d])

というのは,
「-」をさがしなさい。
それはアルファベット(\l\u)および数字(\d)以外の(!)文字の前(-を正規表現文字列をはさむ(? )の前に置く)にあります。
というような意味になるようだ。
正規表現文字列は,検索置換ダイアログの「正規表現」タブの下で,検索および置換文字列のよこにある@をおすとプルダウンメニューが出てきて選択できる。
「前の」「後ろの」は,「一致」というカテゴリの中にある。
「●の前にある○」は「○(?=●)」
「●以外の前にある○」「○は(?!●)」
「●のうしろにある○」は「○(?<=●)」
「●以外のうしろにある○」は「○(? という書式になるようだ。



最新の画像もっと見る

post a comment