我有一个如下所示的字符串。
<label>value1<label>:value<br>
<label>value2<label>:value<br>
<label>value3<label>:value<br>我需要将其安排如下
<li><label>value1<label><span>value</span><li>我已经试了2天了,但是没有luck.Any帮助?
发布于 2012-11-19 17:27:32
这确实不是您应该使用regex来做的事情。您也许能够拼凑出一个有效的解决方案,但前提是它对正在解析的内容做了很多假设,但是如果内容偏离预期的程度很大,那么它总是脆弱的,很容易崩溃。
更好的选择是使用PHP的DOM family类。我不能自由地为您编写代码(这也不是为您编写代码的目的),但我可以给您一个关于您需要遵循的步骤的指针。
span in label
发布于 2013-02-15 16:19:34
如果出于正则表达式的原因,您应该使用它,则如下所示:
$string = <<<TOK
<label>value1<label>:value<br>
<label>value2<label>:value<br>
<label>value3<label>:value<br>
TOK;
preg_match_all('/<label>(.*?)<label>\:(.*?)<br>/s', $string, $matches);
print_r($matches);
/*
Array
(
[0] => Array
(
[0] => value1:value
[1] => value2:value
[2] => value3:value
)
[1] => Array
(
[0] => value1
[1] => value2
[2] => value3
)
[2] => Array
(
[0] => value
[1] => value
[2] => value
)
)
*/
$content = "";
foreach($matches as $key => $match)
{
$content.= "<li><label>{$matches[1][$key]}<label><span>{$matches[2][$key]}</span><li>\n";
}
echo($content);
/*
Output:
<li><label>value1<label><span>value</span><li>
<li><label>value2<label><span>value</span><li>
<li><label>value3<label><span>value</span><li>
*/https://stackoverflow.com/questions/13450632
复制相似问题