正则表达式用'选项'替换'li'而不会丢失class和id属性

时间:2010-05-06 21:52:18

标签: php regex preg-replace

我正在寻找使用preg_replace或类似方法进行更改的解决方案:

<li id="id1" class="authorlist" />
<li id="id2" class="authorlist" />
<li id="id3" class="authorlist" />

<option id="id1" class="authorlist" />
<option id="id2" class="authorlist" />
<option id="id3" class="authorlist" />

我认为我的模式是正确的,但不确定如何更换零件......

这是(wordpress)php代码:

$string = wp_list_authors( $args ); //returns list as noted above
$pattern = '<li ([^>]*)';
$replacement = '?????';
echo preg_replace($pattern, $replacement, $string);

建议,拜托?

3 个答案:

答案 0 :(得分:6)

我认为简单的字符串替换最好

str_replace('<li', '<option', $string)

结束标记相同

str_replace('</li', '</option', $string)

答案 1 :(得分:2)

像这样:

echo str_replace('</li', '</option', (str_replace('<li', '<option', $string));

答案 2 :(得分:0)

您需要在模式中使用分隔符。例如:

$pattern = '@<li @';
$replacement = '<option ';