簡體   English   中英

正則表達式排除img,其中src =“ //”

[英]regex exclude img where src=“//”

有人可以幫我嗎,我不喜歡正則表達式。 我有此正則表達式在相對URL上運行preg_replace,將域放在開頭,並使它們成為絕對的。 它適用於標准URL,但我遇到的URL如下所示:

<img src="//domain.com/file.jpg">

..匹配正則表達式,然后變得像:

<img src="http://www.newdomain.com//domain.com/file.jpg"> ,這顯然會中斷。

如何修改此正則表達式以不接受以兩個斜杠“ //”開頭的字符串?

preg_replace("#(<\s*img\s+[^>]*src\s*=\s*[\"'])(?!http)([^\"'>]+)([\"'>]+)#", '$1' .$url. '/$2$3', $html);

您已經排除了帶有“ http”的網址,可以在其中添加“ //”-

(<\s*img\s+[^>]*src\s*=\s*[\"'])(?!(http)|(\/\/))([^\"'>]+)([\"'>]+)
                                   ^^^^^^^^^^^^^ Modified here

你可以在這里測試

正則表達式:刪除<img which src attribute is empty< div><div id="text_translate"><p> 我想要一個正則表達式模式來刪除 src 屬性為空的圖像,例如:</p><pre> $html = '&lt;img src="adasas.jpg" /&gt;&lt;br /&gt;asasas&lt;br /&gt;sdfsdf&lt;br /&gt;&lt;img title="asa" src="" /&gt;';</pre><p> 或者</p><pre>$html = '&lt;img src="adasas.jpg" /&gt;&lt;br /&gt;asasas&lt;br /&gt;sdfsdf&lt;br /&gt;&lt;a href="adafgag"&gt;&lt;img title="asa" src="" /&gt;&lt;/a&gt;';</pre><p> 如果此&lt;img存在於&lt;a&gt;標記之間,我還想刪除所有( &lt;a和&lt;img )。</p><p> 我測試了下面的代碼,但它刪除了所有 $html</p><pre> echo preg_replace( '?(&lt;a([^&gt;]+)&gt;).&lt;img(?*?)src=""([^&gt;]+)&gt;(&lt;/a&gt;),,si'; '' , $html );</pre><p> 任何人都可以幫助我嗎?</p><p> 提前致謝</p></div>

[英]RegEx : remove <img which src attribute is empty

暫無
暫無

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

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