我寫了這個正則表達式:<span class="icon(.*?)><\/span>我有這個字符串:<p style="text-align: center;"><span style="font-size: 1em;">Text 1 <span style="font-weight: bold;">TEXT 2</span><span style="color: #e67e23; font-size: 1.2em;"><span class="icon x-small icon-play"></span> </span><span style="color: #e03e2d;">Text 3</span> <span style="color: #a68965;">Text 4 </span></span><span style="font-size: 0.7em; color: #000000;">Text 5</span></p>我想刪除該字符串中的所有標簽,除了上面的正則表達式產生的標簽之外。所以我會得到這個最終結果:Text 1 Text 2<span class="icon x-small icon-play"></span> Text 3 Text 4 Text 5正如您在此輸出中看到的,除了我要查找的標簽之外,所有標簽都已被清除。我查看了 PHP,strip_tags但不幸的是它們沒有將正則表達式作為第二個參數,因此沒有執行我正在尋找的操作。我嘗試用 a 來做preg_replace,但無法創建如此復雜的正則表達式。知道什么是最好的方法嗎,無論是使用正則表達式還是不使用正則表達式?
1 回答

慕標5832272
TA貢獻1966條經驗 獲得超4個贊
使用
preg_replace('/<span?class="icon.*?><\/span>(*SKIP)(*F)|<[^<>]+>/',?'',?$string)
該表達式將查找<span class="icon....></span>
字符串來忽略它們(*SKIP)(*F)
,然后所有其他標簽將被刪除(與 匹配<[^<>]+>
)。
- 1 回答
- 0 關注
- 109 瀏覽
添加回答
舉報
0/150
提交
取消