Regex для замены 'li' на 'option' без потери атрибутов class и id - PullRequest
0 голосов
/ 07 мая 2010

Я ищу решение с использованием 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 ]

6 голосов
/ 07 мая 2010

Я думаю, что простая замена строки будет лучше

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

То же самое для конечных тегов

str_replace('</li', '</option', $string)
2 голосов
/ 07 мая 2010

Как это:

echo str_replace('</li', '</option', (str_replace('<li', '<option', $string));
0 голосов
/ 07 мая 2010

Вам нужен разделитель в шаблоне. Например:

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