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-検索/置換 | このブログの読者になる | 更新情報をチェックする

特定の言い回しの部分だけを置換する……正規表現による置換

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

たとえば通常のテキスト検索/置換で“箇所”を“ヶ所”に置換しようと考えた場合、ダイアログは下図のように設定します。

※置換後、文字スタイルを使用して蛍光ペン風表示するよう設定しています。


0516-001.png

しかしこの設定だと、“該当箇所”だった部分まで“該当ヶ所”となってしまいます。これでは適切な置換ではありませんね。




このような時は正規表現による検索/置換をおこないます。ダイアログは下図のように設定すれば良いでしょう。

0516-002.png

当ブログは編集者の方のためのものなので正規表現についてあまり詳しくは触れませんが『検索文字列』の“\d”は数字ということ。“+”はその文字(数字)を1回以上繰り返すという意味です。つまり全体では『数字が1文字以上存在した後に“箇所”という文字が続く部分』を検索するという設定になっています。

『置換文字列』の“$1”は『検索文字列』内の1つめの半角括弧で囲まれた部分をそのまま使用するという意味です。今回で言えば、1文字以上の数字部分を指します。これに続いて“ヶ所”という文字列を加えるという設定になっています。

この設定で実行すれば“該当箇所”は数字が存在しないため検索/置換の対象にならず、“1箇所”と“20箇所”だけが検索/置換の対象になるわけです。



また、下図のように『置換文字列』を空欄にして『置換形式』で文字スタイルを設定すれば、特定の言い回しの部分に対して文字スタイルを適用することもできます。ここでは数字の直後の“円”の文字スタイルを変更する設定になっています。

0516-003.png

なお『検索文字列』の“(?<=\d)”は、直前の文字が数字“\d”であること……という条件を示しています。



正規表現による検索/置換を活用すると書式指定や赤入れ対応が効率化できます。この後も、少し正規表現による検索/置換についてご紹介していきたいと思っています。

(追記)

2つ目の動画では直前が数字の場合のみ“箇所”を“ヶ所”に置換していました。しかし“数箇所”や“何箇所”という文字列もそれぞれ“数ヶ所”と“何ヶ所”に置換したいというケースがあるかもしれません。このような場合はダイアログを下図のように設定します。

0517-001.png

『検索文字列』の“(?<=[\d数何])”は、直前の文字が数字(\d)か“数”か“何”のいずれかの文字であれば良いという条件を示しています。実行結果は以下の動画をご覧ください。

posted by 照山裕爾 at 03:09| Comment(0) | TrackBack(0) | InDesign-検索/置換 | このブログの読者になる | 更新情報をチェックする

2013年05月15日

検索した文字、置換した文字を蛍光ペン表示する

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

InDesignにはMicrosoft Wordと同じような検索/置換機能があります。この機能と、先に《文字スタイルを使って蛍光ペン風に表現……意思疎通のための工夫》でご紹介した蛍光ペン(風の下線)を組み合わせて使用すると便利です。

検索した文字を蛍光ペン表示する


たとえば編集者が「文章中のどこに『下さい』という文字列が存在するか漏れなく確認したい」と要望した場合、DTP作業者はInDesignの『検索/置換』ダイアログの『検索文字列』欄に『下さい』と入力。『置換文字列』欄には何も入力せず、『置換形式』欄で目的の(蛍光ペン風)文字スタイルを設定します。その後『すべてを置換』を実行すると、すべての『下さい』という文字列に蛍光ペン風の表示が適用されます。

0515-101.png



置換した文字を蛍光ペン表示する


編集者が「文章中に存在するすべての『下さい』を『ください』に置換してほしい」と要望した場合、DTP作業者は『検索文字列』欄に『下さい』、『置換文字列』欄に『ください』と入力します。これだけで問題なく置換はおこなえますが、どこが置換されたかを後で確認したいのであれば上記と同様に『置換形式』欄で蛍光ペン風文字スタイルを設定します。その後『すべてを置換』を実行すると、置換された文字に蛍光ペン風の表示が適用されます。

0515-102.png




一括置換では、時として不要な箇所まで置換されてしまうことがあります(もちろん、そのようなことがないよう『検索文字列』や『置換文字列』の設定が適切かどうか十分に吟味すべきなのは当然です)。このような場合でも、蛍光ペン風の表示があれば後で問題箇所を発見しやすくなるのではないでしょうか。
posted by 照山裕爾 at 18:26| Comment(0) | TrackBack(0) | InDesign-検索/置換 | このブログの読者になる | 更新情報をチェックする