回答編集履歴

2

コード修正

2016/05/30 14:23

投稿

hirohiro
hirohiro

スコア2068

test CHANGED
@@ -6,26 +6,26 @@
6
6
 
7
7
 
8
8
 
9
- $str = "<td colspan='2px' rowspan='\"3px\"' aaa='123'>";
9
+ $str = "<td colspan='2' rowspan='\"3\"' aaa='123'>";
10
10
 
11
11
  echo preg_replace($pattern, '<td\2\4>', $str);
12
12
 
13
- //<td rowspan='"3px"' colspan='2px'> シングル&ダブルクオートのネストは多分OK
13
+ //<td rowspan='"3"' colspan='2'> シングル&ダブルクオートのネストは多分OK
14
14
 
15
15
 
16
16
 
17
- $str = "<td colspan='2px'rowspan='3px' aaa='123'>";
17
+ $str = "<td colspan='2'rowspan='3' aaa='123'>";
18
18
 
19
19
  echo preg_replace($pattern, '<td\2\4>', $str);
20
20
 
21
- //<td colspan='2px'> 先頭にスペースが無いと無視
21
+ //<td colspan='2'> 先頭にスペースが無いと無視
22
22
 
23
23
 
24
24
 
25
- $str = "<td colspan='2px' rowspan='3px' aaa='123' rowspan='5px'>";
25
+ $str = "<td colspan='2' rowspan='3' aaa='123' rowspan='5'>";
26
26
 
27
27
  echo preg_replace($pattern, '<td\2\4>', $str);
28
28
 
29
- //<td rowspan='5px' colspan='2px'> 同じ属性が2つある場合は後方優先
29
+ //<td rowspan='5' colspan='2'> 同じ属性が2つある場合は後方優先
30
30
 
31
31
  ```

1

コード修正

2016/05/30 14:23

投稿

hirohiro
hirohiro

スコア2068

test CHANGED
@@ -2,9 +2,13 @@
2
2
 
3
3
  ```PHP
4
4
 
5
+ $pattern = '/<td(( rowspan.*?(["\']).*?\3)|( colspan.*?(["\']).*?\5)|.)*?>/';
6
+
7
+
8
+
5
9
  $str = "<td colspan='2px' rowspan='\"3px\"' aaa='123'>";
6
10
 
7
- echo preg_replace('/<td(( rowspan.*?(["\']).*?\3)|( colspan.*?(["\']).*?\5)|.)*?>/', '<td\2\4>', $str);
11
+ echo preg_replace($pattern, '<td\2\4>', $str);
8
12
 
9
13
  //<td rowspan='"3px"' colspan='2px'> シングル&ダブルクオートのネストは多分OK
10
14
 
@@ -12,7 +16,7 @@
12
16
 
13
17
  $str = "<td colspan='2px'rowspan='3px' aaa='123'>";
14
18
 
15
- echo preg_replace('/<td(( rowspan.*?(["\']).*?\3)|( colspan.*?(["\']).*?\5)|.)*?>/', '<td\2\4>', $str);
19
+ echo preg_replace($pattern, '<td\2\4>', $str);
16
20
 
17
21
  //<td colspan='2px'> 先頭にスペースが無いと無視
18
22
 
@@ -20,7 +24,7 @@
20
24
 
21
25
  $str = "<td colspan='2px' rowspan='3px' aaa='123' rowspan='5px'>";
22
26
 
23
- echo preg_replace('/<td(( rowspan.*?(["\']).*?\3)|( colspan.*?(["\']).*?\5)|.)*?>/', '<td\2\4>', $str);
27
+ echo preg_replace($pattern, '<td\2\4>', $str);
24
28
 
25
29
  //<td rowspan='5px' colspan='2px'> 同じ属性が2つある場合は後方優先
26
30