やりたいこと
数字を3桁ごとにカンマで区切る
正規表現
「置換前」の指定:(?<=[0-9])(?=([0-9]{3})+$)
「置換後」の指定:,
※赤文字:メタ文字
※参考にしたサイト:https://www.javadrive.jp/regex-basic/writing/index2.html
置換結果
置換前
1
22
333
4444
55555
666666
7777777
aaaa
置換後
1
22
333
4,444
55,555
666,666
7,777,777
aaaa
※赤文字:置換された文字列
解説
置換前:(?<=[0-9])(?=([0-9]{3})+$)
■(?<=[0-9])
(?<=~):肯定後読みを表します。
[0-9]:0~9のいずれか1文字を表します。
よって、(?<=[0-9])は0~9のいずれか1文字の末尾位置にヒットします。
■(?=([0-9]{3})+$)
(?=~):肯定先読みを表します。
[0-9]:0~9のいずれか1文字を表します。
{3}:直前のパターンを3回繰り返すことを表します。
よって、[0-9]{3}は000~999のいずれかを表します。
+:直前のパターンの1回以上の繰り返しを表します。
$:行末を表します。
よって、(?=([0-9]{3})+$)は行末から000~999のパターンに一致する
箇所(パターンの繰り返し)の先頭位置にヒットします。
置換後:,
置換前でヒットした位置に「,」を挿入します。