回答編集履歴

1

PHP

2019/10/10 06:53

投稿

yambejp
yambejp

スコア116690

test CHANGED
@@ -23,3 +23,49 @@
23
23
  肯定先読み・後読み
24
24
 
25
25
  数字が前にあって、後ろに3桁の数字がある繰り返しで文字列の終わりまで
26
+
27
+
28
+
29
+ # 補足
30
+
31
+ こうするとわかりますか?
32
+
33
+ ```PHP
34
+
35
+ $string = '1234567890';
36
+
37
+ $pattern='/(\d)(?=(?:\d{3})+(?!\d))/';
38
+
39
+ if(preg_match_all($pattern,$string,$matches)){
40
+
41
+ print_r($matches); //1、4、7の箇所がヒットするこれを1,、4,、7,に置き換える
42
+
43
+ print preg_replace($pattern,'$1,',$string);
44
+
45
+ }
46
+
47
+ ```
48
+
49
+ ヒットした箇所が0のところで、ヒットする文字が1のところです
50
+
51
+ 0を置換するとき1を利用しているに過ぎません
52
+
53
+ もっと簡易的にみれば$1をつかう必要もありません
54
+
55
+
56
+
57
+ ```PHP
58
+
59
+ $string = '1234567890';
60
+
61
+ $pattern='/\d(?=(?:\d{3})+(?!\d))/';
62
+
63
+ if(preg_match_all($pattern,$string,$matches)){
64
+
65
+ print_r($matches);
66
+
67
+ print preg_replace($pattern,'$0,',$string);
68
+
69
+ }
70
+
71
+ ```