回答編集履歴

16

テキスト修正

2015/06/20 00:32

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,11 +2,15 @@
2
2
 
3
3
 
4
4
 
5
- ご質問の意図として、ログに出てくるIPv4アドレス部分
5
+ ご質問の意図として、
6
6
 
7
- (例では、444.333.222.111となっている部分)
8
7
 
8
+
9
+   ログに出てくるIPv4アドレス部分(例では、444.333.222.111となっている部分)を
10
+
9
- 空文字列に置換して、ログから消してしまいたい
11
+   空文字列に置換して、ログから消してしまいたい
12
+
13
+
10
14
 
11
15
  ということなのかなと解釈しての回答になります。
12
16
 

15

サンプルコード修正

2015/06/20 00:32

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
  $ip_addr_regex = "/\b(?:\d{1,3}\.){3}\d{1,3}\b/";
48
48
 
49
- $replaced = preg_replace($ip_adr_regex , "", $target );
49
+ $replaced = preg_replace($ip_addr_regex , "", $target );
50
50
 
51
51
  echo "$replaced\n";
52
52
 

14

テキスト修正

2015/06/19 23:51

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  ということなのかなと解釈しての回答になります。
12
12
 
13
- (※違っていたらすみませんたぶん無意味な回答になっているので、スルーして下さい。)
13
+ (※違っていたらすみませんたぶん無意味な回答になっているので、スルーして下さい。)
14
14
 
15
15
 
16
16
 

13

テキスト修正

2015/06/19 23:47

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,9 +2,13 @@
2
2
 
3
3
 
4
4
 
5
- ご質問の意図として、ログの例IPv4アドレス部分を空文字列に
5
+ ご質問の意図として、ログに出てくるIPv4アドレス部分
6
6
 
7
+ (例では、444.333.222.111となっている部分)
8
+
9
+ を空文字列に置換して、ログから消してしまいたい、
10
+
7
- 置換したいということなのかなと解釈しての回答になります。
11
+ ということなのかなと解釈しての回答になります。
8
12
 
9
13
  (※違っていたらすみません。たぶん無意味な回答になっているので、スルーして下さい。)
10
14
 

12

テキスト修正

2015/06/19 23:25

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -22,13 +22,13 @@
22
22
 
23
23
 
24
24
 
25
- IP Addresses
25
+ > IP Addresses
26
26
 
27
27
  にある、一番短いもの
28
28
 
29
29
  > Similarly, you can shorten the quick regex to \b(?:\d{1,3}\.){3}\d{1,3}\b
30
30
 
31
- を使て、ご質問によれば
31
+ を使うとして、ご質問によれば
32
32
 
33
33
  > preg_replaceで第2引数を""で
34
34
 

11

テキスト修正

2015/06/19 23:18

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  [regular-expressions.info](http://www.regular-expressions.info/about.html)
16
16
 
17
- にIPアドレスの正規表現が載っているので、以下、れを拝借しての回答となります。
17
+ にIPアドレスの正規表現が載っているので、こちらから拝借します。
18
18
 
19
19
 
20
20
 
@@ -28,7 +28,7 @@
28
28
 
29
29
  > Similarly, you can shorten the quick regex to \b(?:\d{1,3}\.){3}\d{1,3}\b
30
30
 
31
- お借りして、ご質問によれば
31
+ 使って、ご質問によれば
32
32
 
33
33
  > preg_replaceで第2引数を""で
34
34
 

10

テキスト修正

2015/06/19 23:12

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- ご質問の意図として、ログの例にある、444.333.222.111 の部分を
5
+ ご質問の意図として、ログの例にある、IPv4アドレス部分を空文字列に
6
6
 
7
- 空文字列に置換したいという趣旨解しての回答になります。
7
+ 置換したいというなのかなとしての回答になります。
8
8
 
9
- (違っていたらすみません無意味な回答になっているのでスルーして下さい。)
9
+ 違っていたらすみません。たぶん無意味な回答になっているのでスルーして下さい。)
10
10
 
11
11
 
12
12
 

9

テキスト修正

2015/06/19 23:03

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -5,6 +5,8 @@
5
5
  ご質問の意図としては、ログの例にある、444.333.222.111 の部分を
6
6
 
7
7
  空文字列に置換したいという趣旨と理解しての回答になります。
8
+
9
+ (違っていたら、すみません、無意味な回答になっているのでスルーして下さい。)
8
10
 
9
11
 
10
12
 

8

テキスト修正

2015/06/19 22:58

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -36,32 +36,16 @@
36
36
 
37
37
  <?php
38
38
 
39
-
40
-
41
39
  $target = '19 Jun 21:28:46 - 304 GET:/ ::ffff:444.333.222.111 Safari/537.36';
42
-
43
-
44
40
 
45
41
  $ip_addr_regex = "/\b(?:\d{1,3}\.){3}\d{1,3}\b/";
46
42
 
47
-
48
-
49
43
  $replaced = preg_replace($ip_adr_regex , "", $target );
50
-
51
-
52
44
 
53
45
  echo "$replaced\n";
54
46
 
55
47
  ```
56
48
 
57
- 上記を実行すると、444.333.222.111の部分が空文字列に置き換わって
58
-
59
- > 19 Jun 21:28:46 - 304 GET:/ ::ffff: Safari/537.36
60
-
61
- と表示されると思います。
62
-
63
-
64
-
65
49
 
66
50
 
67
51
  ご参考になれば幸いです

7

テキスト修正

2015/06/19 22:57

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -1,4 +1,10 @@
1
1
  こんにちは。
2
+
3
+
4
+
5
+ ご質問の意図としては、ログの例にある、444.333.222.111 の部分を
6
+
7
+ 空文字列に置換したいという趣旨と理解しての回答になります。
2
8
 
3
9
 
4
10
 

6

テキスト修正

2015/06/19 22:55

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -56,68 +56,6 @@
56
56
 
57
57
 
58
58
 
59
- ご参考になれば幸いです。
60
59
 
61
60
 
62
-
63
- ---
64
-
65
- 補足
66
-
67
-
68
-
69
-
70
-
71
- ちなみに正規表現
72
-
73
-
74
-
75
- /\b(?:\d{1,3}\.){3}\d{1,3}\b/
76
-
77
-
78
-
79
- の **?:** は非格納グループ(Non-capture group)と
80
-
81
- 呼ばれる指定の仕方で、コロンの後ろから閉じるカッコまでを
82
-
83
- 後方参照のための変数に**格納しない**という意味です。
84
-
85
- **?:** の無い
86
-
87
-
88
-
89
- /\b(\d{1,3}\.){3}\d{1,3}\b/
90
-
91
-
92
-
93
- との違は、以下の2つ
61
+ ご参考になれば幸です
94
-
95
- ```lang-php
96
-
97
- preg_match(/\b(?:\d{1,3}\.){3}\d{1,3}\b/, $target, $matches1);
98
-
99
- ```
100
-
101
-
102
-
103
- ```lang-php
104
-
105
- preg_match(/\b(\d{1,3}\.){3}\d{1,3}\b/, $target, $matches2);
106
-
107
- ```
108
-
109
- とで得られる $matches1 および $matches2 を var_dump() で
110
-
111
- 表示させれば、その違いが分かると思います。
112
-
113
-
114
-
115
- 今回のご質問では、IPアドレスに相当する部分全体**だけ**が分かればいいので、
116
-
117
- **?:**
118
-
119
- を、regular-expressions.info の例のまま、残しています。
120
-
121
-
122
-
123
- 補足は以上です。

5

テキスト修正

2015/06/19 22:53

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  ```
50
50
 
51
- 上記を実行すると、
51
+ 上記を実行すると、444.333.222.111の部分が空文字列に置き換わって
52
52
 
53
53
  > 19 Jun 21:28:46 - 304 GET:/ ::ffff: Safari/537.36
54
54
 

4

テキスト修正

2015/06/19 22:51

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -112,7 +112,7 @@
112
112
 
113
113
 
114
114
 
115
- 今回のご質問では、IPアドレスに相当する部分全体が分かればいいので、
115
+ 今回のご質問では、IPアドレスに相当する部分全体**だけ**が分かればいいので、
116
116
 
117
117
  **?:**
118
118
 

3

テキスト修正

2015/06/19 22:48

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  > Similarly, you can shorten the quick regex to \b(?:\d{1,3}\.){3}\d{1,3}\b
22
22
 
23
- をお借りして、
23
+ をお借りして、ご質問によれば
24
24
 
25
25
  > preg_replaceで第2引数を""で
26
26
 

2

テキスト修正

2015/06/19 22:41

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -57,3 +57,67 @@
57
57
 
58
58
 
59
59
  ご参考になれば幸いです。
60
+
61
+
62
+
63
+ ---
64
+
65
+ 補足
66
+
67
+
68
+
69
+
70
+
71
+ ちなみに正規表現
72
+
73
+
74
+
75
+ /\b(?:\d{1,3}\.){3}\d{1,3}\b/
76
+
77
+
78
+
79
+ の **?:** は非格納グループ(Non-capture group)と
80
+
81
+ 呼ばれる指定の仕方で、コロンの後ろから閉じるカッコまでを
82
+
83
+ 後方参照のための変数に**格納しない**という意味です。
84
+
85
+ **?:** の無い
86
+
87
+
88
+
89
+ /\b(\d{1,3}\.){3}\d{1,3}\b/
90
+
91
+
92
+
93
+ との違いは、以下の2つ
94
+
95
+ ```lang-php
96
+
97
+ preg_match(/\b(?:\d{1,3}\.){3}\d{1,3}\b/, $target, $matches1);
98
+
99
+ ```
100
+
101
+
102
+
103
+ ```lang-php
104
+
105
+ preg_match(/\b(\d{1,3}\.){3}\d{1,3}\b/, $target, $matches2);
106
+
107
+ ```
108
+
109
+ とで得られる $matches1 および $matches2 を var_dump() で
110
+
111
+ 表示させれば、その違いが分かると思います。
112
+
113
+
114
+
115
+ 今回のご質問では、IPアドレスに相当する部分全体が分かればいいので、
116
+
117
+ **?:**
118
+
119
+ を、regular-expressions.info の例のまま、残しています。
120
+
121
+
122
+
123
+ 補足は以上です。

1

テキスト修正

2015/06/19 22:39

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
 
38
38
 
39
- $ip_adr_regex = "/\b(?:\d{1,3}\.){3}\d{1,3}\b/";
39
+ $ip_addr_regex = "/\b(?:\d{1,3}\.){3}\d{1,3}\b/";
40
40
 
41
41
 
42
42