2008-05-14
■[InDesign][regex]正規表現で数字の桁数を表す
InDesignが正規表現対応となって、「あー、これで数字の桁数とか簡単に指定できるわ〜」とヌカ㐂びな皆さん、こんにちわ。
さっそくやってみたらいいよ。やればわかるさ、ダァ〜!
#1桁の数字だけを検索
\d{1}
はい、だめ〜。なんでダメかっていうと、今ヒットしてる所から再検索すると次に続く数字にもヒットしちゃう。野球なら連続ヒットだ。次行ってみよう。
#1桁の数字だけを検索 \b\d\b
惜しいっ! なんで惜しいかっていうと... 「1.234」とか「1,234」なんていう小数点やカンマがあると「.」「,」の手前が単語境界になるから。残念。切腹(古い...
#1桁の数字だけを検索 \b\d\b(?![\.,])
これでどうだ? 否定先読みで「.」「,」を含めないようにしてるわけだね。でも「123.4」の「4」にヒットしちゃう。頭隠して尻隠さず。B型のわたしはすでに辛い。
#1桁の数字だけを検索 (?<![\.,])\b\d\b(?![\.,])
うん、これで多分普通のテキストなら大丈夫。ちなみに、「hoge1hoge」とか「hoge1」とか「1hoge」とかアルファベットの中の桁数まで見たいなら、こんな感じかな。
((?<=[A-Za-z])\d(?=[A-Za-z])|(?<![\.,])\b\d(?=[A-Za-z])|(?<=[A-Za-z])\d\b(?![\.,])|(?<![\.,])\b\d\b(?![\.,]))
こうなると、ちょっとこんがらがってくる。選択はなるべく展開した方がいい。。。っていうより、いま考えたばっかりだから穴があるかもしれないけど^^ 普通は単語中にでてきたらそれは桁のある数字とみなさないからいいのだ。
あとの桁数は\d{2}とか適当にやってくれ。たまにうまく動かない時もあるけれど、きっと愛嬌だ。
ちなみに
hatenaブログ上では\(半角バックスラッシュ)が「\」になってしまっているけれど、(このご時世)この2つは完全にコードポイントの違う文字ですからね。お気をつけて。
追記
(追記:2010-03-18T00:41:30+0900)このページ、たまに参照されるようなので注意点を。InDesign CS4から単語境界の扱いが変わっています。(cf. 2008-12-16 - 名もないテクノ手)
ですから、上記のように1桁だけの数字を検索したいなら
(?<![\d,\.])\d(?![\d,\.])
とすればいいでしょう。おそらくInDesign CS3でもうまくマッチするはずです。
- 1016 http://www.google.co.jp/url?sa=t&rct=j&q=正規表現 各数値 桁 &source=web&cd=5&ved=0CEAQFjAE&url=http://d.hatena.ne.jp/seuzo/20080514/1210756204&ei=-_efTpugDcqHmQWOscXIBA&
- 369 http://www.google.co.jp/search?q=正規表現+桁数&hl=ja&lr=&start=10&sa=N
- 359 http://www.google.co.jp/search?hl=ja&q=正規表現 perl 桁数&btnG=検索&lr=
- 176 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cts=1331267584057&ved=0CDIQFjAA&url=http://d.hatena.ne.jp/seuzo/20080514/1210756204&ei=-odZT8nYPOePiAfMlYzODQ&usg=AFQjCNGMvWzxiwajtARGsoLAE7CBPWV10A&sig2=2I8cZO1qbkSnTcFCnRBPcQ
- 173 http://search.yahoo.co.jp/search?p=正規表現 桁数&ei=UTF-8&fr=top_ga1&x=wrt
- 170 http://www.google.co.jp/search?hl=ja&source=hp&q=正規表現 桁数&lr=&aq=f&oq=
- 165 https://www.google.co.jp/
- 110 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4ADBF_jaJP272JP272&q=オブジェクトの重なり 選択
- 98 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cts=1331090213061&sqi=2&ved=0CE0QFjAC&url=http://d.hatena.ne.jp/seuzo/20080514/1210756204&ei=F9NWT6KBOIjLmAXI3rjPCQ&usg=AFQjCNGMvWzxiwajtARGsoLAE7CBPWV10A
- 71 http://www.google.co.jp/url?sa=t&rct=j&q=インデザイン 検索 一桁数字&source=web&cd=4&sqi=2&ved=0CDEQFjAD&url=http://d.hatena.ne.jp/seuzo/20080514%


