[英]How to replace html tag with other tags using preg-match?
我有一個類似下面的字符串。
<label>value1<label>:value<br>
<label>value2<label>:value<br>
<label>value3<label>:value<br>
我需要安排如下
<li><label>value1<label><span>value</span><li>
我已經嘗試了這最后兩天,但沒有運氣。有幫助嗎?
這真的不是您應該使用正則表達式執行的操作。 如果它對要解析的內容進行了很多假設,您也許可以將一個可行的解決方案組合在一起,但是,如果該內容與預期的任何重大偏離,它將始終脆弱且易於破壞。
更好的選擇是使用PHP的DOM系列類。 我並不是真正為您編寫代碼的人(無論如何這不是SO的意思),但是我可以為您提供有關您需要遵循的步驟的指導。
如果為了正則表達式,您應該使用它,請按照以下步驟操作:
$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>
*/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.