DTP屋あかつき@おばなの稼業録。
110420-1.jpg
InDesign CS4/5の正規表現スタイルを使って任意の文字を区切り文字として指定し、文字スタイルを変更してみます。
なお、正規表現の記述方法は市川せうぞーさんの『InDesign者のための正規表現入門』を参考させていただきました。

1.テキストの構造を把握する
今回処理したいテキストは、

ソフトウェア名:バージョン,バージョン…

という具合に各テキストは「:(コロン)」と「,(カンマ)」で区切られており、「:」の前までがソフトウェア名、「,」で区切られている項目がバージョン名になっています。
なので「:」と「,」をキーにすれば正規表現スタイルで文字色を変更できそう、と判断できます。

2.正規表現を記述してみる
『InDesign者のための正規表現入門』を読むと、特定の文字を検索対象にしつつ選択対象に含めたくない場合は先読み/後読みの「肯定先読み」を使えば良さそうなので

ソフトウェア名用に「.+?(?=:)」
バージョン用に「.+?(?=,)」

と記述して検索してみました。
が、バージョン用の記述では正しくマッチしません。
110420-3.jpg
前の文字列やカンマまで選択されてしまいます。また、行末のバージョンにはヒットしません。
そこで、「肯定戻り読み」を使って
(?<=,|:).+?(?=,|\r)
と記述してみました。
並び順としては正しいけれど動くのかちょっとドキドキでしたが、きちんとヒットしてくれました。
110420-4.jpg
エントリアップ後、市川せうぞーさんから

行頭や行末などの位置指定が打てる時は、まず錨(アンカー)をおろす

とコメントをいただきました。
バージョン名のテキスト中に「:」が出てきたり予想しないテキストが出現した時のためにもできるだけ詳しく記述したほうが安全ですね。コメント、ありがとうございます!

3.正規表現スタイルに登録する
完成した正規表現を使用して正規表現スタイルを登録します。
ヒットした文字列に対してのみ文字スタイルが適用されるので、「慣れれば」先頭文字スタイルよりも動作がわかりやすそう。
110420-2.jpg

出現順序が複雑になると記述が複雑になって手に負えなくなりそうですが、作例のような単純な出現順序なら簡単に記述できるのでかなり作業効率がアップできそうです、というかこのエントリ書く時間が出来ましたw
No.367 / DTP /  comments(2)  /  trackbacks(0) /  PAGE TOP△
COMMENT TO THIS ENTRY
- from せうぞー

ご紹介いただきありがとうございます。

「オレならこうする」的な別解をあげておきます。
ソフトウエア名 ^[^:]+
バージョン用 (?<=[:,])[^,]+

ナニが違うかとういうと、行頭や行末などの位置指定が打てる時は、まず錨(アンカー)をおろせ。ってことです。
バージョン名が数字または「CS」がつくかも、って時は
(?<=[:,])(CS)?[\d\.]+
なんて制限することも可能かもしれません。

2011.04.20.Wed / 23:10 / [ EDIT ] / PAGE TOP△
- from あかつき

> せうぞーさん

こちらこそ、おかげさまで作業が捗りました。

> 行頭や行末などの位置指定が打てる時は、まず錨(アンカー)をおろせ。

ありがとうございます。指定したい区切り文字が予想外に出てきたりすることを考えると必須ですね。
エントリに追記させていただきます。

2011.04.22.Fri / 15:34 / [ EDIT ] / PAGE TOP△

  非公開コメント
TRACKBACK URL OF THIS ENTRY

TRACKBACK TO THIS ENTRY

■Profile

尾花 暁(あかつき)

  • Author:尾花 暁(あかつき)
  • 書籍や雑誌などのエディトリアルデザイン・DTPをメインに、職業訓練校などでDTP・製版に関する講義やセミナーも担当。 近著は『+DESIGNING』(マイナビ出版)VOLUME.45「比べてみればよくわかる! ○なデザイン、×なデザイン」(共著)ほか、同誌の特集や連載記事など。1級製版技能士。

    ※公開後にエントリーの文章を修正することがあります。内容を大幅に変更・修正した場合は履歴を明記しますが、誤字脱字の修正など細かい変更に関しては明記しません。

    ご意見・ご要望はページ下部のメールフォームからお願いします。

■お問い合わせ

名前:
メール:
件名:
本文:

CopyRight 2006 あかつき@おばなのDTP稼業録 All rights reserved.