回答編集履歴
3
誤字修正
answer
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
ええと、正規表現の `[]`は、「中に書いた文字の**どれか1文字**にマッチ」なので、「JanかFebかMarか……」みたいな文字列に対しては使えません。`()`で囲んで`|`で区切ってください。
|
11
11
|
|
12
|
-
次に、PHPのpreg_matchの第3引数で部分マッチした文字列を受け取るには、部分マッチさせたい場所を`()`で囲む(キャプチャする)必要があります。というわけ
|
12
|
+
次に、PHPのpreg_matchの第3引数で部分マッチした文字列を受け取るには、部分マッチさせたい場所を`()`で囲む(キャプチャする)必要があります。というわけで、日付と西暦年の部分も`()`で囲んでください。
|
13
13
|
|
14
14
|
修正:
|
15
|
-
よく見ると、対象文字列は(文字
|
15
|
+
よく見ると、対象文字列は(文字として)引用符を先頭と末尾に含んでいたため、パターンにそれらを追加した。
|
2
誤字の修正
answer
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
echo $date[1]/$date[2]/$date[3];
|
8
8
|
```
|
9
9
|
|
10
|
-
ええと、正規表現の `[]`は、「中に書いた文字の**どれか1文字**にマッチ」なので、「
|
10
|
+
ええと、正規表現の `[]`は、「中に書いた文字の**どれか1文字**にマッチ」なので、「JanかFebかMarか……」みたいな文字列に対しては使えません。`()`で囲んで`|`で区切ってください。
|
11
11
|
|
12
12
|
次に、PHPのpreg_matchの第3引数で部分マッチした文字列を受け取るには、部分マッチさせたい場所を`()`で囲む(キャプチャする)必要があります。というわけて、日付と西暦年の部分も`()`で囲んでください。
|
13
13
|
|
1
正規表現を引用符を含めるよう修正
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
```PHP
|
2
2
|
$time = "'24/Jun/2018:11:07:15 +0000'";
|
3
|
-
$pattern = '/^([0-9]{2})/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Sept|Oct|Nov|Dec)/([0-9]{4})$/';
|
3
|
+
$pattern = '/^\'([0-9]{2})/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Sept|Oct|Nov|Dec)/([0-9]{4})\'$/';
|
4
4
|
|
5
5
|
|
6
6
|
preg_match($pattern, $time, $date);
|
@@ -9,4 +9,7 @@
|
|
9
9
|
|
10
10
|
ええと、正規表現の `[]`は、「中に書いた文字の**どれか1文字**にマッチ」なので、「JabかFebかMarか……」みたいな文字列に対しては使えません。`()`で囲んで`|`で区切ってください。
|
11
11
|
|
12
|
-
次に、PHPのpreg_matchの第3引数で部分マッチした文字列を受け取るには、部分マッチさせたい場所を`()`で囲む(キャプチャする)必要があります。というわけて、日付と西暦年の部分も`()`で囲んでください。
|
12
|
+
次に、PHPのpreg_matchの第3引数で部分マッチした文字列を受け取るには、部分マッチさせたい場所を`()`で囲む(キャプチャする)必要があります。というわけて、日付と西暦年の部分も`()`で囲んでください。
|
13
|
+
|
14
|
+
修正:
|
15
|
+
よく見ると、対象文字列は(文字列として)引用符を先頭と末尾に含んでいたため、パターンにそれらを追加した。
|