我只想将第一个tr的所有td替换为th。 但是我真的无法弄清楚如何在PHP中使用Regex来做到这一点。 (完全替换td)
<tr class="row0 row-hover">
<td class="column-0 "><?php _e('Data', 'domain'); ?> </td>
<td class="column-0 ">USD</td>
<td class="column-0 ">EUR</td>
<td class="column-0 ">GBP</td>
<td class="column-0 ">CAD</td>
<td class="column-0 ">CHF</td>
<td class="column-0 ">HKD</td>
<td class="column-0 ">AUD</td>
<td class="column-0 ">SGD</td>
<td class="column-0 ">SEK</td>
<td class="column-0 ">NOK</td>
<td class="column-0 ">CNH</td>
</tr>
首先,我有标记。
我尝试使用<tr.*\(<td>).*\
来匹配它们。但这似乎不起作用。我知道我必须首先在(。*)上进行匹配。但是我无法拿到TD。
第二件事是使用preg_replace
替换功能。我看到您可以在此处设置$ limit。所以那只是一个?对于preg_replace函数,最好的分组方式是什么?
如果它变成这样,那就太好了:)
<tr class="row0 row-hover">
<th class="column-0 "><?php _e('Data', 'domain'); ?> </th>
<th class="column-0 ">USD</th>
<th class="column-0 ">EUR</th>
<th class="column-0 ">GBP</th>
<th class="column-0 ">CAD</th>
<th class="column-0 ">CHF</th>
<th class="column-0 ">HKD</th>
<th class="column-0 ">AUD</th>
<th class="column-0 ">SGD</th>
<th class="column-0 ">SEK</th>
<th class="column-0 ">NOK</th>
<th class="column-0 ">CNH</th>
</tr>
答案 0 :(得分:0)
不涉及正则表达式,但无论如何都不需要它:
<?php
$input = <<<EOT
<tr class="row0 row-hover">
<td class="column-0 "><?php _e('Data', 'domain'); ?> </td>
<td class="column-0 ">USD</td>
<td class="column-0 ">EUR</td>
<td class="column-0 ">GBP</td>
<td class="column-0 ">CAD</td>
<td class="column-0 ">CHF</td>
<td class="column-0 ">HKD</td>
<td class="column-0 ">AUD</td>
<td class="column-0 ">SGD</td>
<td class="column-0 ">SEK</td>
<td class="column-0 ">NOK</td>
<td class="column-0 ">CNH</td>
</tr>
<tr class="row0 row-hover">
<td class="column-0 "><?php _e('Data', 'domain'); ?> </td>
<td class="column-0 ">USD</td>
<td class="column-0 ">EUR</td>
<td class="column-0 ">GBP</td>
<td class="column-0 ">CAD</td>
<td class="column-0 ">CHF</td>
<td class="column-0 ">HKD</td>
<td class="column-0 ">AUD</td>
<td class="column-0 ">SGD</td>
<td class="column-0 ">SEK</td>
<td class="column-0 ">NOK</td>
<td class="column-0 ">CNH</td>
</tr>
EOT;
$delimiter = '</tr>';
$content = substr($input, 0, strpos($input, $delimiter) + strlen($delimiter));
$output = str_replace("<td", "<th", $content);
$output .= substr($input, strpos($input, $delimiter) + strlen($delimiter));
</tr>
</tr>
<td
替换<th
的每次出现