[ 掲示板に戻る ]

記事No.10375に関するスレッドです

表中の数字を3桁区切りする場合の正規表現 / sasa
Windows10 22H2, InDesign 17.4.1

表中の数字に3桁区切りを入れようと、正規表現にて
検索:(\d)(?=(\d{3})+[^\d])
置換:\1,
と設定したところ、「1000」等、そこで終了している場合にはマッチしませんでした。
「1000」等の場合もマッチするようにするには、検索条件をどのようにすれば良いでしょうか。

No.10375 2023/03/06(Mon) 16:25:19
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.57

Re: 表中の数字を3桁区切りする場合の正規表現 / (z-) URL
検索:(\d)(?=(\d{3})+\D)
置換:$1,

でどうでしょう。

No.10376 2023/03/08(Wed) 10:44:35
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3.1 Safari/605.1.15

Re: 表中の数字を3桁区切りする場合の正規表現 / (z-) URL
すみません手が滑りました…(しかも編集パスワード失念)
No.10377 2023/03/08(Wed) 10:48:18
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3.1 Safari/605.1.15

Re: 表中の数字を3桁区切りする場合の正規表現 / (z-) URL
すみません上は無視してください。

検索:(\d)(?=(\d{3})+(?!\d))
置換:$1,
で実現しました。
先読みの中に先読みが入れられるんですね。ここが盲点でした。
勉強になりました…

No.10378 2023/03/08(Wed) 11:15:18
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3.1 Safari/605.1.15

Re: 表中の数字を3桁区切りする場合の正規表現 / mars517
(\d)(?=(\d{3})+(?!\d))
だと、一部に漏れが出てしまうようです。
(例「1234567890」が最終行で改行が存在しないケース)
理由は、よく分かりません……

前半を少しだけ変えて
(\d+?)(?=(\d{3})+(?!\d))
とすると、うまくマッチしてくれました。

なお、
(\d+?)(?=(\d{3})+([^\d]|$))
でもできました。

No.10384 2023/03/09(Thu) 03:58:56
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36

Re: 表中の数字を3桁区切りする場合の正規表現 / mars517
[念のため]
JeditΩやCotEditor(Macのテキストエディタ)で試したら
(\d)(?=(\d{3})+(?!\d))
でも問題なく置換できました。

No.10385 2023/03/09(Thu) 04:26:11
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36

Re: 表中の数字を3桁区切りする場合の正規表現 / (z-) URL
あ…重ね重ね失礼しました
ストーリー末尾を「1000」で試してしまってたので問題に気付かず。
mars517さん補足訂正ありがとうございます。
せっかくなので先読みの入れ子はもうちょっと研究してみたいですね。

No.10387 2023/03/09(Thu) 12:44:46
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3.1 Safari/605.1.15

Re: 表中の数字を3桁区切りする場合の正規表現 / sasa
(z-)さん、mars517さん、回答ありがとうございました。
お陰様で希望通りの処理を行うことができました。
忘れないように、早速クエリに保存しておきます。

No.10388 2023/03/09(Thu) 14:04:50
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.63