【InDesign CS4/5】任意の区切り文字を指定してスタイルを変更する | 2011.04.20.Wed / 17:36 | |||
InDesign CS4/5の正規表現スタイルを使って任意の文字を区切り文字として指定し、文字スタイルを変更してみます。
なお、正規表現の記述方法は市川せうぞーさんの『InDesign者のための正規表現入門』を参考させていただきました。
1.テキストの構造を把握する
今回処理したいテキストは、
という具合に各テキストは「:(コロン)」と「,(カンマ)」で区切られており、「:」の前までがソフトウェア名、「,」で区切られている項目がバージョン名になっています。ソフトウェア名:バージョン,バージョン…
なので「:」と「,」をキーにすれば正規表現スタイルで文字色を変更できそう、と判断できます。
2.正規表現を記述してみる
『InDesign者のための正規表現入門』を読むと、特定の文字を検索対象にしつつ選択対象に含めたくない場合は先読み/後読みの「肯定先読み」を使えば良さそうなので
と記述して検索してみました。ソフトウェア名用に「.+?(?=:)」
バージョン用に「.+?(?=,)」
が、バージョン用の記述では正しくマッチしません。
前の文字列やカンマまで選択されてしまいます。また、行末のバージョンにはヒットしません。
そこで、「肯定戻り読み」を使って
(?<=,|:).+?(?=,|\r)と記述してみました。
並び順としては正しいけれど動くのかちょっとドキドキでしたが、きちんとヒットしてくれました。
エントリアップ後、市川せうぞーさんから
とコメントをいただきました。行頭や行末などの位置指定が打てる時は、まず錨(アンカー)をおろす
バージョン名のテキスト中に「:」が出てきたり予想しないテキストが出現した時のためにもできるだけ詳しく記述したほうが安全ですね。コメント、ありがとうございます!
3.正規表現スタイルに登録する
完成した正規表現を使用して正規表現スタイルを登録します。
ヒットした文字列に対してのみ文字スタイルが適用されるので、「慣れれば」先頭文字スタイルよりも動作がわかりやすそう。
出現順序が複雑になると記述が複雑になって手に負えなくなりそうですが、作例のような単純な出現順序なら簡単に記述できるのでかなり作業効率がアップできそうです、というかこのエントリ書く時間が出来ましたw