2013年05月17日

正規表現による置換の活用例……「したがって」と「従って」

DTP作業者にとっての難易度 ★★★☆☆(3)

たとえば、下図のように文章の頭で使用する接続詞は仮名表記の「したがって」、文章の途中で使用する動詞は漢字表記の「従って」にしたいという場合、やはり正規表現による検索/置換をおこないます。

0517-103.png


従って→したがって


文章の頭で使用する接続詞を「したがって」とするためには下図のように設定します。

0517-101.png

『検索文字列』のうち「|」の左側は「^従って」となっています。この「^」は段落行頭を示します。つまり段落行頭に存在する「従って」を検索対象にする、という設定になっているわけです。
「|」の右側は「(?<=[、。])従って」となっています。この「(?<=[、。])」は、「従って」の直前の文字が読点「、」もしくは句点「。」であること、という条件を示します。

※「|」は複数の条件を設定する際に使用します。「または」という意味だと考えていただければ結構です。





したがって→従って


文章の途中で使用する動詞を「従って」とするためには下図のように設定します。

0517-102.png

『検索文字列』は「(?<=に)したが(?=[わいうえおっ])」となっています。「(?<=に)」は、「したが」の直前の文字が「に」であること、という条件を示します。「(?=[わいうえおっ])」は、直後の文字が「わ」「い」「う」「え」「お」「っ」のいずれかの文字であること、という条件を示します。

※「に従わない」「に従う」「に従えば」「に従おう」「に従って」といった活用に対応するためです。




※これらの他に「○○を従えて」や「○○が従わない場合」などの表現部分も対象にするためには少し設定を追加しなければなりませんが、ここでは省略しました。



サンプルデータはこちら《minimum0517.zip》です(CS4以降)。

【2016.7.14、2016.8.29追記→2016.9.23修正】

Adobeフォーラムで
^従って|(?<=[、。])従って
ではヒットしないものがあるとご指摘がありました。

当方で試した範囲ではInDesignCC2014(10.2.0.68)と2015(11.0.0.72)で
段落内の(句読点に続く)「従って」が検索対象となりませんでした。
理由はよく分かりませんが最初の「^」が「|」以降にも影響しているように思います。
これがInDesignが抱える問題なのか、
それとも正規表現の正常な挙動なのかはよく分かりません。

なお、順番を入れ替えて
(?<=[、。])従って|^従って
とすることで、この問題は回避できるようです。
(↑この部分、2016.8.29追記)


(?<=[\r。、])従って|^従って
とすることで、この問題は回避できるようです。
「従って」の直前が改行、句点、読点のケース、
もしくは「従って」が段落行頭のケース……という意味です。

【2017.6.29追記】

どうしても「^」がダメな場合、
「(?<![^.\r])」とすると
うまくいくことが多いようです。
posted by 照山裕爾 at 15:22| Comment(2) | TrackBack(0) | InDesign-検索/置換 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
従って→したがって の正規表現ですが
^従って|「(?<=[、。])従って では
例:一段中の場合
従って、従って。従って
の場合は段落の始まりのみ置換では?
Posted by 又川 透 at 2013年06月11日 09:44
又川さん
コメントありがとうございます。

^従って|「(?<=[、。])従って
ではなく

^従って|(?<=[、。])従って
ですね。念のため。

サンプルデータをアップしましたので、お試しいただけますでしょうか。よろしくお願いします。
Posted by 照山 裕爾 at 2013年06月11日 11:45
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック