FC2ブログ

記事一覧

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

正規表現の数字の話

検索時にはマッチするのに、正規表現スタイルに組み込むとマッチしない、
そんな不思議な挙動を文字があることをご存じでしょうか?
それは、意外なことに全角数字です。
えっ?と思うかもしれません。
実際に挙動を見てみましょう。
まずは以下の数字を検索置換の正規表現タブから、検索してみます。
DTP_020.jpg
検索文字列には
[01234567890123456789]
と入力します。これは0~9の半角数字か0~9の全角数字という意味です。
置換の形式には、文字がゴシックかつ赤色にある文字スタイルを設定しました。
DTP_021.jpg
では、すべてを置換を押してみましょう。
DTP_022.jpg
問題なく数字が置き換わりました。
では、これと同じ正規表現を正規表現スタイルに組み込んでみましょう。
DTP_023.jpg
全角数字にはマッチしなくなりました。
※検索置換パネルには「全角と半角を区別」といった設定項目があります。
DTP_024.jpg
InDesignの検索上での数字は、この項目で全半角を判定していますが、正規表現スタイルにはこの項目がない為、このような問題が起こるのかと思われます。
しかしこのままでは困ります。
全角数字にはどうやってマッチさせればいいでしょうか?
答えは、全角数字をユニコードで指定する事で解決します。
全角数字の0はInDesiginの正規表現で
\x{FF10}
全角数字の9はInDesiginの正規表現で
\x{FF19}
です。
なので、
[\x{FF10}-\x{FF19}]
のように設定することで、
DTP_025.jpg
全角数字に赤ゴシックを設定することができました。
まとめ
全角数字のみにマッチさせたい場合は、
[\x{FF10}-\x{FF19}]
半角数字のみにマッチさせたい場合は、
[0-9]
全半角両方にマッチさせたい場合は、
\d
漢数字のみにマッチさせたい場合は、
[一二三四五六七八九〇]
と使い分けて見て下さい。

スポンサーサイト

コメント

コメントの投稿

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。