終了

スペースの次のアルファベットだけ書体を変えたい

エクスプローラー ,
Apr 25, 2018 Apr 25, 2018

リンクをクリップボードにコピー

コピー完了

Mac OS Yosemiteで、InDesignCS6を使っております。

段落頭またはスペースのあとにくるアルファベットだけ、記号用のフォントに置き換えする正規表現を思案しているのですが、

初心者ゆえに、スペース文字まで記号用フォントに置き換わってしまいぐちゃぐちゃになりました…。

^[\l\u]|\s[\l\u]

正規表現は現在こんな感じです。

スペース文字はあくまで「これのあとの欧文に適応して」という条件として指定したいだけなのですが

どなたかヒントをください!

表示

659

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines

correct answers 1 件の正解

積極的な参加者 , Apr 25, 2018 Apr 25, 2018

nicori.さん、こんにちは。

正規表現スタイルであれば、設定を2つ作ったほうがわかりやすいかもしれません。

行頭のアルファベットは

^[\l\u]

スペースの次に来るアルファベットだけ(ただしスペースを除外)は

(?<= )[\l\u]

これらの条件の正規表現スタイルに、同じ文字スタイルを充当するのです。

スクリーンショット 2018-04-26 11.41.48.png

正規表現スタイルは重ねがけができたり、煩雑な正規表現を分割して同じスタイルにしたり、そういったことも利点の一つです。あまりいたずらに増やしてしまうとまたそれは大変ですが、無理に一つの正規表現ですべて対応しようとしなくても大丈夫です。

投票

翻訳

翻訳
Community Expert ,
Apr 25, 2018 Apr 25, 2018

リンクをクリップボードにコピー

コピー完了

1つの正規表現だけで両方ともマッチさせるのは無理かもしれません。

以下の2つに分けて実行する(正規表現スタイルなら2つ仕込む)しかないかも。

  • 段落先頭の「アルファベット1文字にマッチ」 ^[\l\u]
  • 段落先頭+空白文字1文字直後の「アルファベット1文字にマッチ」 (?<=^ )[\l\u]

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
積極的な参加者 ,
Apr 25, 2018 Apr 25, 2018

リンクをクリップボードにコピー

コピー完了

nicori.さん、こんにちは。

正規表現スタイルであれば、設定を2つ作ったほうがわかりやすいかもしれません。

行頭のアルファベットは

^[\l\u]

スペースの次に来るアルファベットだけ(ただしスペースを除外)は

(?<= )[\l\u]

これらの条件の正規表現スタイルに、同じ文字スタイルを充当するのです。

スクリーンショット 2018-04-26 11.41.48.png

正規表現スタイルは重ねがけができたり、煩雑な正規表現を分割して同じスタイルにしたり、そういったことも利点の一つです。あまりいたずらに増やしてしまうとまたそれは大変ですが、無理に一つの正規表現ですべて対応しようとしなくても大丈夫です。

Yusuke S.

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
エクスプローラー ,
Apr 25, 2018 Apr 25, 2018

リンクをクリップボードにコピー

コピー完了

2つに分割したらできました!ありがとうございます。

もしよかったら詳細に教えていただきたいのですが…

(?<= )←これの意味がよくわかってないです。

コピペすれば動きましたが、それぞれどのような役割なのでしょうか。

リファレンスには肯定あと読み、とありましたがその説明だとピンときません。

どういう挙動をするものなんでしょうか。応用するとしたらどういう場面で使えますでしょうか。

すみません図々しいのですが、知りたいです。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
積極的な参加者 ,
Apr 25, 2018 Apr 25, 2018

リンクをクリップボードにコピー

コピー完了

nicori.さん

「肯定後読み」だけだと確かになんだかわかんないですよね。

名前よりも実際どういう挙動をするのかを試行錯誤して、「肯定/否定」・「あと/さき」読みを自分なりに納得すればいいと思います。

肯定後読みについて少し補足すると、

(?<=[条件])[マッチする語句]

というような意味合いで、この[条件]は検索マッチの対象になりません。

なので、

a[bc]

(?<=a)[bc]

という正規表現を比べると、後者はa自体はマッチしません(直前にaがあるbかcがマッチする)。

一方、前者はabかacという文字列がマッチします。

つまり、検索する条件には加えたいけれど、検索にマッチさせたくない、という場合に有用です。

ネットで調べるといろいろ出てきますので、ご自身で納得できるまでいろいろ試してください^^/

Yusuke S.

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
エクスプローラー ,
Apr 25, 2018 Apr 25, 2018

リンクをクリップボードにコピー

コピー完了

最新

まさに求めていた内容の説明ありがとうございます!

すごくわかりやすかったです。

先読みってそういうことなのですね。

本当にありがとうございました。精進いたします。

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines