記事一覧

実例から覚えるInDesignの正規表現 目次組版編 その2

「実例から覚えるInDesignの正規表現 目次組版編 その1」からの続きです。


3.節を検索置換する

章の正規表現検索置換ができれば、節の検索も工夫することで簡単にできるはずです。
では、どんな工夫が必要でしょうか?
章はテキストをそのまま活かせましたが、節は以下の画像のようにタブを全角スペースに置換する必要があります

moku_sei30-01.jpg  
簡単に思いつくのは、
章の検索置換と同じ要領で、
検索文字列:^第\d+節~(
置換形式 :目次/節
を実行した後、
2回目の検索置換で、
検索文字列:\t(タブ文字) 検索形式:目次/節
置換文字列: (全角スペース)
といった検索置換を行う、という方法ではないでしょうか?

実際にこの方法が、一番スマートであると思います。
ですが、この方法では検索置換を2回しなければなりません。



今回はその方法とは別に検索置換を1度で済ませる方法も解説します。
ですが、初めて正規表現にふれる方には少々分かりづらい内容かも知れません。少し読んでみて面倒だと感じたら読み飛ばしましょう
というか、読む必要ありません。読まないで下さい。
というのは嘘ですが「今は頭に入らない」と感じたら読み飛ばしましょう。
正規表現を丸暗記することよりも、どういったことができるのか?を知っていることの方が重要です。

moku_sei09-02.jpg 

では、画像のように、

検索欄:^(第\d+節.+)\t(\d+)
置換欄:$1 $2
と入れてみてください。

急にややこしくなりました。ごめんなさい。いえ、大丈夫です。実は難しくありません。
1つずつ解説していきます。

まず検索欄です。

^ サーカムフレックス。行頭を意味します。
( 後述します。半角のパーレンです。
\d 数字です
+ 直前の文字が1回以上繰り返し
. 半角ピリオドは任意の一文字(改行含まない)
) 後述、半角パーレン(閉じ)
\t はタブ
( 後述
\d は数字
+ は直前の文字が1回以上繰り返し
) 後述

詳しく解説していきます。
章の項を読んでいれば、パーレンとピリオド以外は理解できたのではないでしょうか?
半角パーレンは、置換の「$1」と一緒に解説しますのでひとまず置いておきましょう。
半角ピリオドの「任意の一文字」とは、改行以外のすべての文字という意味です。
「あ」も「A」も「@」も「4」も「亜」も半角ピリオドで検索することができます。

まとめると、


行頭に「第」
次の文字が「数字(1桁以上)」
その次に入るのが「節」
その次に「改行以外の文字(1文字以上)
その次にタブ
最後に「数字(1桁以上)」
という条件を満たす文字列


となります。


では、次に置換をみていきます。
ここで、先ほど検索欄で入力した半角のパーレンが意味を持ってきます。
半角パーレン自体にはマッチする文字列はありません。(半角パーレンを検索したい場合は \( と検索します)

しかし、半角パーレンは囲った文字列を再利用することができます。
置換パターンを含めてみていくと、

$1 は検索欄で半角パーレンで囲った1つめの文字列を挿入、
  は全角スペース
$2 は検索欄で半角パーレンで囲った2つめの文字列を挿入、

と、なります。

半角パーレンを踏まえて、置換の正規表現を意訳すると、

検索で半角パーレンで囲まれていなかったタブを、全角スペースに置き換える

といった処理がされることになります。

置換形式に「目次/節」の段落スタイルを設定しすべてを置換してください。



読み飛ばした方はここまで!


少し長くなりましたのでここで区切ります。

繰り返しになりますが、正規表現はすべて暗記する必要はまったくありません。

自分が行う作業に必要なものを適宜調べながら覚えていけばいいのです。


ただし、何ができるのかを知らなければ調べることもできません。

こういったブログ記事を頭の片隅に入れておくことで、いつか役に立ったらいいですね!


次のエントリーに続きます。







詳説 正規表現 第3版
詳説 正規表現 第3版
posted with amazlet at 16.05.15
Jeffrey E.F. Friedl 
オライリージャパン 
売り上げランキング: 42,715
スポンサーサイト

コメント

コメントの投稿

非公開コメント

プロフィール

ゆう

Author:ゆう
東京在住

DTPオペレーター
書籍組版と電子書籍の製作を主に

Javascript学習中

Twitter(更新のお知らせはこちら)
@Yo_Yu_You

全記事表示リンク