リンクをクリップボードにコピー
コピー完了
Mac OS Yosemiteで、InDesignCS6を使っております。
段落頭またはスペースのあとにくるアルファベットだけ、記号用のフォントに置き換えする正規表現を思案しているのですが、
初心者ゆえに、スペース文字まで記号用フォントに置き換わってしまいぐちゃぐちゃになりました…。
^[\l\u]|\s[\l\u]
正規表現は現在こんな感じです。
スペース文字はあくまで「これのあとの欧文に適応して」という条件として指定したいだけなのですが
どなたかヒントをください!
nicori.さん、こんにちは。
正規表現スタイルであれば、設定を2つ作ったほうがわかりやすいかもしれません。
行頭のアルファベットは
^[\l\u]
スペースの次に来るアルファベットだけ(ただしスペースを除外)は
(?<= )[\l\u]
これらの条件の正規表現スタイルに、同じ文字スタイルを充当するのです。
正規表現スタイルは重ねがけができたり、煩雑な正規表現を分割して同じスタイルにしたり、そういったことも利点の一つです。あまりいたずらに増やしてしまうとまたそれは大変ですが、無理に一つの正規表現ですべて対応しようとしなくても大丈夫です。
リンクをクリップボードにコピー
コピー完了
1つの正規表現だけで両方ともマッチさせるのは無理かもしれません。
以下の2つに分けて実行する(正規表現スタイルなら2つ仕込む)しかないかも。
リンクをクリップボードにコピー
コピー完了
nicori.さん、こんにちは。
正規表現スタイルであれば、設定を2つ作ったほうがわかりやすいかもしれません。
行頭のアルファベットは
^[\l\u]
スペースの次に来るアルファベットだけ(ただしスペースを除外)は
(?<= )[\l\u]
これらの条件の正規表現スタイルに、同じ文字スタイルを充当するのです。
正規表現スタイルは重ねがけができたり、煩雑な正規表現を分割して同じスタイルにしたり、そういったことも利点の一つです。あまりいたずらに増やしてしまうとまたそれは大変ですが、無理に一つの正規表現ですべて対応しようとしなくても大丈夫です。
リンクをクリップボードにコピー
コピー完了
2つに分割したらできました!ありがとうございます。
もしよかったら詳細に教えていただきたいのですが…
(?<= )←これの意味がよくわかってないです。
コピペすれば動きましたが、それぞれどのような役割なのでしょうか。
リファレンスには肯定あと読み、とありましたがその説明だとピンときません。
どういう挙動をするものなんでしょうか。応用するとしたらどういう場面で使えますでしょうか。
すみません図々しいのですが、知りたいです。
リンクをクリップボードにコピー
コピー完了
nicori.さん
「肯定後読み」だけだと確かになんだかわかんないですよね。
名前よりも実際どういう挙動をするのかを試行錯誤して、「肯定/否定」・「あと/さき」読みを自分なりに納得すればいいと思います。
肯定後読みについて少し補足すると、
(?<=[条件])[マッチする語句]
というような意味合いで、この[条件]は検索マッチの対象になりません。
なので、
a[bc]
と
(?<=a)[bc]
という正規表現を比べると、後者はa自体はマッチしません(直前にaがあるbかcがマッチする)。
一方、前者はabかacという文字列がマッチします。
つまり、検索する条件には加えたいけれど、検索にマッチさせたくない、という場合に有用です。
ネットで調べるといろいろ出てきますので、ご自身で納得できるまでいろいろ試してください^^/
リンクをクリップボードにコピー
コピー完了
まさに求めていた内容の説明ありがとうございます!
すごくわかりやすかったです。
先読みってそういうことなのですね。
本当にありがとうございました。精進いたします。