正規表現でルビを

[4552]正規表現でルビを | 投稿者:みやもと | 投稿日:2010/04/14(Wed) 13:14:01
いつもここを読ませていただき、勉強させていただいております。

Mac OS X 10.5.8、inDesign cs3  で作業しています。

inDesign の正規表現の検索で、マッチした文字列に段落スタイルを適用
しようとしています。
たとえば、検索文字列に、a13((.+)+)、置換文字列に、$1 を入力して、
置換形式に、段落スタイル ; a13を選び、すべてを置換します。
すると、文字列の中にルビがついているものがあった場合、それが消えて
しまうのですね。
ルビを残したままにはできないものでしょうか?
» 1
[4555]Re: 正規表現でルビを | 投稿者:いき | 投稿日:2010/04/14(Wed) 14:16:16
うわ、これバグかもしれません。
WindowsXP sp3/CS3で同じ現象を確認しました。

正規表現でなく、普通の検索置換で、
検索:a13
置換:‌‌^j   (結合なし)
にして、段落スタイルを選んで置換してみてください。
これならルビを残したまま置換できると思います。
» 2
[4556]Re: 正規表現でルビを | 投稿者:こに | 投稿日:2010/04/14(Wed) 14:19:02
>たとえば、検索文字列に、a13((.+)+)、置換文字列に、$1 を入力して、
置換形式に、段落スタイル ; a13を選び、すべてを置換します。
この方法だと、個別に文字スタイルを適用していたところが、a13の3文字分ずれてしまいます。
最初に、置換文字列に何も入れず空白にしておいて置換して、次にa13を""と置換すればよくないですか?
» 3
[4558]Re: 正規表現でルビを | 投稿者:いき | 投稿日:2010/04/14(Wed) 14:34:14
自己レスです。
正規表現でもいいですね(^^;

私が勘違いしていなければ、ですが......。
先頭に「a13」の文字がある段落に、段落スタイル「a13」をあてたいんですよね。

であれば、正規表現で
検索:^a13
置換:~j  (結合なし)
の状態で、問題なく置換できます。

置換のところ、文字化けしてるかも。
「置換のための特殊文字」のプルダウンから「結合なし」を選びます。
» 4
[4560]Re: 正規表現でルビを | 投稿者:みやもと | 投稿日:2010/04/14(Wed) 17:14:32
いき様
丁寧なお答え、どうもありがとうございます。
4558のレスの内容を試してみました。うまく行きます。


しかしながら、すこし問題が...
検索文字列を ^a13((.+)+) 、置換文字列に $1 としたのは、
a13 の文字列の後に続く数行に、空白行が出てくるまで
マッチさせたいと思ったからなのです。アタマにつくa13は
取ってしまいたいのですが。

それでいろいろやってみたのですが、どうも((.+)+)と、括弧で
くくって、$1 とやるのがうまく行かない原因のようなのですね。
a13を取らずにやれば、ルビも残ったままなのですが。
» 5
[4561]Re: 正規表現でルビを | 投稿者:みやもと | 投稿日:2010/04/14(Wed) 17:27:26
こに様
お答え、ありがとうございます。

>最初に、置換文字列に何も入れず空白にしておいて置換して、次にa13を""と置換すればよくないですか?

置換をしておいてから、最後にアタマの a13 を取るわけでしょうか?
やってみたところ、ルビも残り、うまく行きました。

今やっている仕事では、段落スタイルがとてもたくさんあるので、
一回ですませられれば...とも思ってしまうのですが...
» 6
[4562]Re: 正規表現でルビを | 投稿者:いき | 投稿日:2010/04/14(Wed) 17:52:56
もうひとつの方法としては、タグテキストとして取り込んでやればよいかと思います。
» 7
[4565]Re: 正規表現でルビを | 投稿者:みやもと | 投稿日:2010/04/15(Thu) 11:45:16
タグテキストのことをあまり知らないので、調べてみました。ちょっとやってみます。ありがとうございました。
» 8
[4567]Re: 正規表現でルビを | 投稿者:いき | 投稿日:2010/04/15(Thu) 14:03:10
以下、あまりはっきりと解説されていない部分だと思うので。
段落スタイルタグは行頭に置いてやれば有効です。(閉じるためのタグは不要)

<pstyle:a13>一行目

としたら、次に行頭に新しい段落スタイルタグが出現するまでの間、ずっと段落スタイル「a13」が適用されることになります。
» 9
[4578]Re: 正規表現でルビを | 投稿者:こに | 投稿日:2010/04/16(Fri) 17:34:05
>今やっている仕事では、段落スタイルがとてもたくさんあるので、
>一回ですませられれば...とも思ってしまうのですが...
行頭にa13などのキーワードがあるテキストを検索して、キーワードと同じ名前の段落スタイルを適用してからa13などのキーワードを削除という流れであってますか?
スクリプトが書けるようでしたら、a13などのキーワードを配列なりテキストファイルで用意して、^a13((.+)+) で検索して、スタイル適用して、a13を削除(a13のところは必要なキーワードに順に入れ替える)のような一連の作業をスクリプトで書けばできます。
今後同様の処理が必要なときも、配列なりテキストファイルを書き換えればいいだけです。
» 10
[4583]Re: 正規表現でルビを | 投稿者:いき | 投稿日:2010/04/16(Fri) 21:12:57
^a13((.+)+)
ではマッチする範囲が広すぎて、一括処理したら意図しない結果になりませんか?
私の考えが足らないだけかも......というか、足らないのでしょうけれども......(^^;

それよりも、どうせa13などのキーワードが行頭にあり、次に新しいキーワードが出てくるまでは同じ段落スタイルでよいということなら、プレーンテキストを正規表現でタグ付きテキストに置換してから配置する方が合理的な気がするのですが......。
» 11
[4586]Re: 正規表現でルビを | 投稿者:みやもと | 投稿日:2010/04/17(Sat) 12:46:02
いき様

返信がすこし遅れましてすみません。

><pstyle:a13>一行目
>
>としたら、次に行頭に新しい段落スタイルタグが出現するまでの間、ずっと段>落スタイル「a13」が適用されることになります。

そういうことができるのですか? いいことを教えていただきました。
これができるなら、少し工夫をして、いい方法が考えられるかも
しれません。ありがとうございます。
» 12
[4587]Re: 正規表現でルビを | 投稿者:みやもと | 投稿日:2010/04/17(Sat) 13:06:15
こに様

返信が遅れましてすみません。

スクリプト、少し前から勉強中です。
まだうまく書けません。

web を検索してみると、そういうことが出来るものが
ありますね。使わせてもらうことも考えてみます。
» 13
[4588]Re: 正規表現でルビを | 投稿者:みやもと | 投稿日:2010/04/17(Sat) 13:14:18
いき様

なるほど。
たしかに、スタイルを適用したい文字列のアタマにいちいちキーワードをつけるより、合理的ですね。いままで、そういうことを考えませんでした。
考えが広がりました。ありがとうございます。
検索置換の出来るエディタなどを使えば、いいわけですね。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア