[英]Regexp to trim spaces from a string contained in HTML tag
我有這個HTML字符串(已驗證):
<div><img src="images/stories/2014/AAA.gif" alt="AAA" width="24" height="24" /> THE PRODUCTION OF: PLASTIC BOTTLES <br /></div>
我必須提取<img>
標簽附近的唯一標題,以修剪之前和之后的所有空格,而不是將其包裝在<h1>
標簽中。 結果為:
<div><h1>THE PRODUCTION OF: PLASTIC BOTTLES</h1></div>
我已經完成了一個有效的正則表達式,但最終結果中還包含空格:
/<img\s*src="[^"]+"\s*alt="AAA"\s*width="24"\s*height="24"\s*\/>\s*([^<]+)\s*<br\s*\/>/
對於alt , width和height屬性的這些特征值,可以識別圖像。 謝謝。
實際上,有一種足夠簡單的方法完全不需要正則表達式。
'<div><h1>' . trim(strip_tags($original_html)) . '</h1></div>';
首先刪除所有標簽,然后修剪空白,最后將其包裝在所需的任何標簽中。
使您的匹配不貪婪應該可以解決問題: <img\\s*src="[^"]+"\\s*alt="AAA"\\s*width="24"\\s*height="24"\\s*\\/>\\s*([^<]+?)\\s*<br\\s*\\/>
注意額外?
旁邊[^<]+
)。更多可用的信息在這里 。
話雖如此,您實際上應該使用PHP DOM Parser之類的東西來處理HTML。
我認為更好的解決方案是使用jQuery。具體來說,方法.text()
<div id='mydiv'><img src="images/stories/2014/AAA.gif" alt="AAA" width="24" height="24" /> THE PRODUCTION OF: PLASTIC BOTTLES <br /></div>`
<script>var text = $('#mydiv').text();$('#mydiv').html('<h1>' + text + '</h1>');</script>
結果是:
<div><h1>THE PRODUCTION OF: PLASTIC BOTTLES</h1></div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.