回答編集履歴
5
修正
answer
CHANGED
@@ -17,8 +17,9 @@
|
|
17
17
|
|
18
18
|
> 文字列中の数字にカンマをいれるときの正規表現
|
19
19
|
```正規表現
|
20
|
-
s/(?<=\d)(?=(?:\d\d\d)+\D)/,/
|
20
|
+
s/(?<=\d)(?=(?:\d\d\d)+(\D|$))/,/g
|
21
21
|
```
|
22
|
+
※コメントで指摘いただき修正しました(5/24)
|
22
23
|
恐らくこんな感じ?
|
23
24
|
例によって日本語訳すると
|
24
25
|
「直前に数値が存在し、直後に1つ以上の”3桁の数値の塊り”が数値以外に行き当たるまで続くという条件を満たす”位置”」
|
4
値修正
answer
CHANGED
@@ -3,15 +3,15 @@
|
|
3
3
|
```
|
4
4
|
これの検索条件を日本語で表すと
|
5
5
|
「直前に数値が存在し、直後に1つ以上の”3桁の数値の塊り”が行末まで続くという条件を満たす”位置”」となります。(※文字は一つも指定されてないので位置ですね。)
|
6
|
-
例えば「
|
6
|
+
例えば「555555555」の場合、「5」と「55555555」の間を見ると、”3桁の数値の塊り”が2つ続いたあと、末尾までに「55」が残りますので条件を満たしません。
|
7
7
|
|
8
8
|
行末記号を消した場合
|
9
9
|
```正規表現
|
10
10
|
s/(?<=\d)(?=(?:\d\d\d)+)/,/
|
11
11
|
```
|
12
12
|
「直前に数値が存在し、直後に1つ以上の”3桁の数値の塊り”が続くという条件を満たす”位置”」です。
|
13
|
-
「ここから
|
13
|
+
「ここから555555555ここまで」の文字列を見ると、「ら」と「5」の間つまり数値の先頭には、その前に数値が無いので条件を満たしませんが、それ以降は条件を満たします。
|
14
|
-
例えば[5]と「
|
14
|
+
例えば[5]と「55555555」の間を見ると、直前に数値があり、その後方には3桁以上の数値の塊りが1つ以上存在しています。
|
15
15
|
そして最後の3桁に入ると、後ろに3桁以上の数値が存在しなくなるので、条件を満たさなくなります。
|
16
16
|
従って「ここから5,5,5,5,5,5,555ここまで」こうなるでしょう。
|
17
17
|
|
3
表現の修正
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
```
|
4
4
|
これの検索条件を日本語で表すと
|
5
5
|
「直前に数値が存在し、直後に1つ以上の”3桁の数値の塊り”が行末まで続くという条件を満たす”位置”」となります。(※文字は一つも指定されてないので位置ですね。)
|
6
|
-
例えば
|
6
|
+
例えば「55555555」の場合、「5」と「5555555」の間を見ると、”3桁の数値の塊り”が2つ続いたあと、末尾までに「55」が残りますので条件を満たしません。
|
7
7
|
|
8
8
|
行末記号を消した場合
|
9
9
|
```正規表現
|
2
表現の修正
answer
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
```
|
4
4
|
これの検索条件を日本語で表すと
|
5
5
|
「直前に数値が存在し、直後に1つ以上の”3桁の数値の塊り”が行末まで続くという条件を満たす”位置”」となります。(※文字は一つも指定されてないので位置ですね。)
|
6
|
+
例えば[5]と「5555555」の間を見ると、”3桁の数値の塊り”が2つ続いたあと、末尾までに「5」が残りますので条件を満たしません。
|
6
7
|
|
7
8
|
行末記号を消した場合
|
8
9
|
```正規表現
|
1
表現修正
answer
CHANGED
@@ -2,14 +2,16 @@
|
|
2
2
|
s/(?<=\d)(?=(?:\d\d\d)+$)/,/
|
3
3
|
```
|
4
4
|
これの検索条件を日本語で表すと
|
5
|
-
「直前に数値が存在し、
|
5
|
+
「直前に数値が存在し、直後に1つ以上の”3桁の数値の塊り”が行末まで続くという条件を満たす”位置”」となります。(※文字は一つも指定されてないので位置ですね。)
|
6
6
|
|
7
7
|
行末記号を消した場合
|
8
8
|
```正規表現
|
9
9
|
s/(?<=\d)(?=(?:\d\d\d)+)/,/
|
10
10
|
```
|
11
|
-
「直前に数値が存在し、
|
11
|
+
「直前に数値が存在し、直後に1つ以上の”3桁の数値の塊り”が続くという条件を満たす”位置”」です。
|
12
|
-
「ここから55555555ここまで」の文字列を見ると、「ら」と「5」の間つまり数値の先頭には、その前に数値が無いので条件を満たしませんが、それ以降は条件を満たします。
|
12
|
+
「ここから55555555ここまで」の文字列を見ると、「ら」と「5」の間つまり数値の先頭には、その前に数値が無いので条件を満たしませんが、それ以降は条件を満たします。
|
13
|
+
例えば[5]と「5555555」の間を見ると、直前に数値があり、その後方には3桁以上の数値の塊りが1つ以上存在しています。
|
14
|
+
そして最後の3桁に入ると、後ろに3桁以上の数値が存在しなくなるので、条件を満たさなくなります。
|
13
15
|
従って「ここから5,5,5,5,5,5,555ここまで」こうなるでしょう。
|
14
16
|
|
15
17
|
> 文字列中の数字にカンマをいれるときの正規表現
|
@@ -18,4 +20,4 @@
|
|
18
20
|
```
|
19
21
|
恐らくこんな感じ?
|
20
22
|
例によって日本語訳すると
|
21
|
-
「直前に数値が存在し、
|
23
|
+
「直前に数値が存在し、直後に1つ以上の”3桁の数値の塊り”が数値以外に行き当たるまで続くという条件を満たす”位置”」
|