Help us understand the problem. What is going on with this article?

InDesignで使える正規表現を利用した検索・置き換え

半角スペースを取る

Wordのテキストデータやその他のデータで英単語の前後に半角スペースが入ってる場合があるが、そのような時に効率的に削除する方法を解説したい。

正規表現での検索&削除

command+Fか、[編集]メニューから[検索と置き換え]を選び、タブを[正規表記]にする。

InDesign CCScreenSnapz001.png

正規表現での検索方法の詳しい情報は、WikiPediaの正規表現などを参考にしてほしい。

次に、[検索文字列:]の中に次の様に挿入する。

  • 半角文字の次に半角スペースがあり、その次に全角文字がある場合
(?<=[\x00-\x7F]) (?=[^\x00-\x7F])
  • 全角文字の次に半角スペースがあり、その次に半角文字がある場合
(?<=[^\x00-\x7F]) (?=[\x00-\x7F])

おまけとして全角文字と全角文字の間に半角スペースがある場合も列挙しておく

  • 全角文字と全角文字の間に半角スペースがある場合
(?<=[^\x00-\x7F]) (?=[^\x00-\x7F])

今回は正規表現の肯定先読み、後読みという方法を使っての検索を行ったが、もしかするともう少しマシな方法もあるかも知れない。
とはいえ、これだけでも充分楽になったのではないだろうか?

音引きの検索方法

これもよくある話で、たとえばユーザーとユーザ、サーバーとサーバみたいに、原稿の中で統一されていない場合がある。
これも地道に検索していく方法もあるにはあるが、時間と労力の無駄なので、さくっと全検索・置き換え方法を使っていく

割とキモは^の使い方

ユーザとユーザーの検索で見ていくことにする。
たとえば、ユーザーをユーザに置き換える場合は、単純にユーザーを全検索をかけてユーザに置き換えてしまえば問題はない。
問題になるのは、ユーザを検索してユーザーに置き換える場合だ。この場合、単純にユーザを検索・置き換えにしてしまうと、ユーザーユーザという部分まで引っかかってしまい、そのまま置き換えをしてしまうとユーザーーとなってしまう。
なので、次の様に正規表現で検索する

ユーザ(?=[^ー])

ユーザまではわかると思うが、後ろにある(?=[^ー])は肯定後読みを使い、且つ、[^ー]を対象外としたことになる。この^を前に付けると、後ろの検索部分以外を検索しなさい!という命令になる。
同じようにサーバサーバーとする場合も、

サーバ(?=[^ー])

と正規表記検索を使って、置き換えてあげれば良い。

今回の肯定後読みと打ち消しだが、実はもっと色々な応用があるが、その辺は自分で色々考えてみてほしい。またInDesginに流し込む前にJeditなりの検索機能を使い、且つ、その設定を保存しておくと、一括で流し込みデータのができるので、これも試してほしいところであったりする。

挟まれた文字を検索する

著者に対して太字にしたいので、指定を括弧またはカギ括弧などで行ってほしいという事があり、後でその文字を一括変換に欠けたい場合などに用いる。

検索自体はかなり簡単で、たとえばカギ括弧の場合は次のように指定する。

\「.+?\」

つまりバックスラッシュの次は検索対称にはなるが、選択対象には入れないということになる。
後は、検索と置き換えの正規表記検索に入れて、置き換え形式に太字設定などを入れればいいだろう。その際、「や」などは検索と置き換えで個別に消してあげればいい。

これも色々応用の利く正規表現などで色々試してほしい。
上記の2つと組み合わせるとかなり絞った検索もできるようになるだろう。

同じ文字を繰り返しをマッチする

「これ、なんに使うんだ?」って思う人もいると思うが、実はわりとライティング打ち間違い上位に入るパターンである。
検索方法は次の通りである。

(.)\1+

上記の正規表現はメタ文字である.(.は改行以外全ての文字列を表現している)と、その後の「\1」で後方参照している。よくわからない人は、よく分からなくてもいいが、つまりそう言う事であるっていうことぐらいの柔らかい理解度で問題ない。

実際の検索方法

ひらがなだけをマッチさせたい場合は、次の様に書く。

([ぁ-ん])\1+

カタカナの場合は、次の様に書く。

([ァ-ヶ])\1+

漢字の場合は次の様に書く。

(亜-熙)\1+

また、ひらがな、カタカナ、漢字全てをマッチさせる場合は、次の様に書く。

([ぁ-んァ-ヶ亜-熙])\1+

結構この検索も使うが、難点は割と文章中にくり返し文字自体はよく使われるので、マッチしたからってそれが誤字ではないこともある。そういう場合は、自分で正誤の判断をしなければならない

JHiyama
会社社長兼編集兼ライター兼コーダーです。 基本的には編集業50%、ウェブコーダー50%で仕事をしています。
http://3hp.me/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした