我有一个包含下一个内容的数组:
Array(
[0] => <tr><td>29/06/2015</td><td>19:35</td><td>12345 Column information</td><td>67899 Column information</td><td>Information</td><td>More information</td></tr>
[1] => <tr><td>12/03/2015</td><td>10:12</td><td>98545 Column information</td><td>67659 Column information</td><td>Information</td><td>More information</td></tr>
[2] => <tr><td>11/02/2015</td><td>12:40</td><td>59675 Column information</td><td>94859 Column information</td><td>Information</td><td>More information</td></tr>
[3] => <tr><td>01/01/2015</td><td>20:12</td><td>69365 Column information</td><td>78464 Column information</td><td>Information</td><td>More information</td></tr>
)
如何才能将数字存储在第三和第四列? 我想要做的是将这些数字存储在一个数组中以执行脚本:
shell_exec("addnewgroups 12345 67899");
shell_exec("addnewgroups 98545 67659");
shell_exec("addnewgroups 59675 94859");
shell_exec("addnewgroups 69365 78464");
我尝试使用:preg_replace(&#39; / \ D + /&#39;,&#39;&#39;,$ var); 但是不想拍日期和时间数字! :\
提前多多感谢!!
预期产出:
12345, 67899
98545, 67659
59675, 94859
69365, 78464
或直接使用脚本:
addnewgroups 12345 67899;
addnewgroups 98545 67659;
addnewgroups 59675 94859;
addnewgroups 69365 78464;
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以将以下正则表达式与preg_replace一起使用,然后将匹配替换为\1 \2
.*?(\d+)\s.*?(\d+)\s.*
(\d+)\s
捕获一个或多个后跟空格的数字。因此它不会匹配除空格之外的任何其他数字。用组索引1(第一个数字)和组索引2(第二个数字)中的字符替换所有匹配的字符将为您提供所需的输出。
$re = "/.*?(\\d+)\\s.*?(\\d+)\\s.*/m";
$str = "<tr><td>29/06/2015</td><td>19:35</td><td>12345 Column information</td><td>67899 Column information</td><td>Information</td><td>More information</td></tr>";
$subst = "$1, $2";
$result = preg_replace($re, $subst, $str);