回答編集履歴

2

^$を追加

2015/06/19 05:17

投稿

naga3
naga3

スコア1293

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  foreach ($dates as $date) {
8
8
 
9
- if (preg_match('/(\d{4})\D(\d{1,2})\D(\d{1,2})/', $date, $m)) {
9
+ if (preg_match('/^(\d{4})\D(\d{1,2})\D(\d{1,2})$/', $date, $m)) {
10
10
 
11
11
  echo sprintf('%4d/%02d/%02d', $m[1], $m[2], $m[3]) . '<br>';
12
12
 

1

test

2015/06/19 05:17

投稿

naga3
naga3

スコア1293

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  foreach ($dates as $date) {
8
8
 
9
- if (preg_match('/(\d{4}).(\d{1,2}).(\d{1,2})/', $date, $m)) {
9
+ if (preg_match('/(\d{4})\D(\d{1,2})\D(\d{1,2})/', $date, $m)) {
10
10
 
11
11
  echo sprintf('%4d/%02d/%02d', $m[1], $m[2], $m[3]) . '<br>';
12
12
 
@@ -20,6 +20,6 @@
20
20
 
21
21
  正規表現で解いてみました。
22
22
 
23
- 数字4桁, 任意の1文字, 数字1または2桁, 任意の1文字, 数字1または2桁
23
+ 数字4桁, 数字以外の1文字, 数字1または2桁, 数字以外の1文字, 数字1または2桁
24
24
 
25
25
  にマッチします。