回答編集履歴
2
コード修正
test
CHANGED
@@ -6,26 +6,26 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
$str = "<td colspan='2
|
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='"3
|
13
|
+
//<td rowspan='"3"' colspan='2'> シングル&ダブルクオートのネストは多分OK
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
$str = "<td colspan='2
|
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='2
|
21
|
+
//<td colspan='2'> 先頭にスペースが無いと無視
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
-
$str = "<td colspan='2
|
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='5
|
29
|
+
//<td rowspan='5' colspan='2'> 同じ属性が2つある場合は後方優先
|
30
30
|
|
31
31
|
```
|
1
コード修正
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(
|
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(
|
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(
|
27
|
+
echo preg_replace($pattern, '<td\2\4>', $str);
|
24
28
|
|
25
29
|
//<td rowspan='5px' colspan='2px'> 同じ属性が2つある場合は後方優先
|
26
30
|
|