我的正則表達式(<(div|i)\b[^>]*>)(\bTEST\b)(<\/(div|i)\s*>)
正則表達式的HTML標籤內
取代= '媽媽' 從
<div clas="dfsdf">TEST</div>
是
MOM
,但我想的HTML標籤仍然存在 它應該是這樣的: <div clas="dfsdf">MOM</div>
我在做什麼錯了嗎?
我的正則表達式(<(div|i)\b[^>]*>)(\bTEST\b)(<\/(div|i)\s*>)
正則表達式的HTML標籤內
取代= '媽媽' 從
<div clas="dfsdf">TEST</div>
是
MOM
,但我想的HTML標籤仍然存在 它應該是這樣的: <div clas="dfsdf">MOM</div>
我在做什麼錯了嗎?
如果你只是MOM
更換,你的整個比賽將被MOM
更換..In你的正則表達式<div clas="dfsdf">
是第1組($ 1),TEST
是捕獲組3($ 3)和</div>
是第4組($ 4)..所以,你有以下
$1MOM$4
來取代它包含需要什麼,只更換對應TEST
捕獲組。
這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – Alex
@Alex更新了答案,使其更具體..謝謝.. –
你可以使用look around:
preg_replace('~(?<=<(?:div|i)\b[^>]*>)TEST(?=</\s*(?:div|i)\s*>)~', "MOM', $str);
與HTML工作時,不要使用正則表達式。有很多其他更好的方法...使用類似於DOM的界面。 – Sirko
請參閱http://stackoverflow.com/a/1732454/797393 – Cylian