1
我試圖取代兩個標籤的preg_replace標籤問題
</th>
</tr>
與
</th>
</tr>
</thead>
我覺得標記之間的換行符防止更換從以下工作:
$str = preg_replace('/(<\/th>)+(\/tr)/i', '</th></tr></thead>', $str);
有什麼建議嗎?
我試圖取代兩個標籤的preg_replace標籤問題
</th>
</tr>
與
</th>
</tr>
</thead>
我覺得標記之間的換行符防止更換從以下工作:
$str = preg_replace('/(<\/th>)+(\/tr)/i', '</th></tr></thead>', $str);
有什麼建議嗎?
這是正則表達式的解決方案:
$str = preg_replace('/<\/th>\s*<\/tr>/i', '</th></tr></thead>', $str);
注意,\s*
匹配任何空白和你錯過/tr
周圍<
和>
。
如上所述,HTML/DOM解析器可能更適合您想要做的事情。
我的建議是,你不使用正則表達式來做到這一點,而是一個HTML解析器。另外,檢查你的正則表達式,看起來你已經錯過了那裏的一個或其他角色。 – hakre
使用'/ s'而不是'/ i' .. – Rikesh
有時候HTML解析器是一個很好的選擇,但如果它很小,也許這不是一個好主意...... –