teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

文字の修正

2016/05/23 02:22

投稿

aaaaaaaa
aaaaaaaa

スコア501

title CHANGED
File without changes
body CHANGED
@@ -1,9 +1,9 @@
1
- 10ケタの数字、例えば「555555555」のような数字に3の倍数個ずつカンマを振り分ける際は、下記のように記述します。
1
+ 9ケタの数字、例えば「555555555」のような数字に3の倍数個ずつカンマを振り分ける際は、下記のように記述します。
2
2
 
3
3
  ```正規表現
4
4
  s/(?<=\d)(?=(?:\d\d\d)+$)/,/
5
5
  ```
6
- しかし、上記の数字がそれこそ「10ケタの数字、例えば「555555555」のような数字に3の倍数個ずつカンマを振り分ける際は、下記のように記述します。」という文章のように文字列の中に埋もれていた場合、
6
+ しかし、上記の数字がそれこそ「9ケタの数字、例えば「555555555」のような数字に3の倍数個ずつカンマを振り分ける際は、下記のように記述します。」という文章のように文字列の中に埋もれていた場合、
7
7
  マッチしなくなります。マッチさせるために、末尾に三桁の数字、を意味する「$」を削除してしまうと、「えば「5,5,5,5,5,5,555」のような…」とカンマだらけになります。$が無くなったことで、残った条件が「左に数字、右に3の倍数個の数字」となるので、カンマだらけになる理由は、解かります。
8
8
  疑問点は、なぜ$を消しただけでこのようにカンマだらけになってしまうのかです。
9
9
  逆にいうと、なぜ末尾に三桁という条件を付けるとカンマだらけにならなくなるのかが解かりません。

2

修正し忘れていたのでもう一度修正。

2016/05/23 02:22

投稿

aaaaaaaa
aaaaaaaa

スコア501

title CHANGED
File without changes
body CHANGED
@@ -1,9 +1,9 @@
1
- 一億ケタの数字、例えば「555555555」のような数字に3の倍数個ずつカンマを振り分ける際は、下記のように記述します。
1
+ 10ケタの数字、例えば「555555555」のような数字に3の倍数個ずつカンマを振り分ける際は、下記のように記述します。
2
2
 
3
3
  ```正規表現
4
4
  s/(?<=\d)(?=(?:\d\d\d)+$)/,/
5
5
  ```
6
- しかし、上記の数字がそれこそ「一億ケタの数字、例えば「555555555」のような数字に3の倍数個ずつカンマを振り分ける際は、下記のように記述します。」という文章のように文字列の中に埋もれていた場合、
6
+ しかし、上記の数字がそれこそ「10ケタの数字、例えば「555555555」のような数字に3の倍数個ずつカンマを振り分ける際は、下記のように記述します。」という文章のように文字列の中に埋もれていた場合、
7
7
  マッチしなくなります。マッチさせるために、末尾に三桁の数字、を意味する「$」を削除してしまうと、「えば「5,5,5,5,5,5,555」のような…」とカンマだらけになります。$が無くなったことで、残った条件が「左に数字、右に3の倍数個の数字」となるので、カンマだらけになる理由は、解かります。
8
8
  疑問点は、なぜ$を消しただけでこのようにカンマだらけになってしまうのかです。
9
9
  逆にいうと、なぜ末尾に三桁という条件を付けるとカンマだらけにならなくなるのかが解かりません。

1

タグの追加、質問文修正

2016/05/20 11:12

投稿

aaaaaaaa
aaaaaaaa

スコア501

title CHANGED
File without changes
body CHANGED
@@ -10,6 +10,6 @@
10
10
 
11
11
  ちなみに文字列中の数字にカンマをいれるときの正規表現は、「
12
12
  ```正規表現
13
- s/\b(?<=d)(?=(?:\d\d\d)+)\b/,/
13
+ s/(?<=d)(?=(?:\d\d\d)+)\b/,/
14
14
  ````
15
- だと認識しておりますが、こちらも自信がありません
15
+ だと認識しております。