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

回答編集履歴

3

誤字修正

2020/06/23 09:22

投稿

Daregada
Daregada

スコア11990

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

誤字の修正

2020/06/23 09:22

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -7,7 +7,7 @@
7
7
  echo $date[1]/$date[2]/$date[3];
8
8
  ```
9
9
 
10
- ええと、正規表現の `[]`は、「中に書いた文字の**どれか1文字**にマッチ」なので、「JabかFebかMarか……」みたいな文字列に対しては使えません。`()`で囲んで`|`で区切ってください。
10
+ ええと、正規表現の `[]`は、「中に書いた文字の**どれか1文字**にマッチ」なので、「JanかFebかMarか……」みたいな文字列に対しては使えません。`()`で囲んで`|`で区切ってください。
11
11
 
12
12
  次に、PHPのpreg_matchの第3引数で部分マッチした文字列を受け取るには、部分マッチさせたい場所を`()`で囲む(キャプチャする)必要があります。というわけて、日付と西暦年の部分も`()`で囲んでください。
13
13
 

1

正規表現を引用符を含めるよう修正

2020/06/23 08:57

投稿

Daregada
Daregada

スコア11990

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
+ よく見ると、対象文字列は(文字列として)引用符を先頭と末尾に含んでいたため、パターンにそれらを追加した。