簡體   English   中英

從特定標簽中剝離字符串的最快方法是什么

[英]What's the quickest way to strip a string from a specific tag

我在字符串中有HTML。 我想剝去它的<head>部分。 我用:

$html = preg_replace("/<head[^>]*?>.*?<\/head>/s", "", $html);

但就性能而言,這可能有點沉重。 還有更好的選擇嗎?

我知道我可以使用strip_tags()並在第二個參數中列出所有接受的標簽,但列出的內容太多了。

當針對此SO頁面的一部分進行測試時,您當前的正則表達式需要6720步。

這個正則表達式<head[^>]*?>(?:[^<]*<??)*</head>只需要376步,它應該返回相同的東西。 它應該比你的正則表達式快近20倍。

它的工作原理是貪婪地匹配不是< here: [^<]*

那么,因為<?? 很懶,它會嘗試立即匹配</head> 如果沒有匹配, <?? 踢進來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM