繁体   English   中英

使用RegEx删除href属性的内容

[英]Remove contents of href attribute with with RegEx

例如,我有以下HTML代码段:

<a href="/sites/all/themes/code.php">some text</a>

问题是-如何使用preg_replace()href剪切文本/sites/all/themes/code.php 我可以使用哪种模式?

我强烈建议您不要使用正则表达式来解析任何SGML派生类。

对于HTML,请使用一些DOM解析器。 对于PHP,特别是DOMDocument

图案:

(<a .*?href=")([^"]*)

替换:$ 1

您不必做“替换”

(?<=<a href=")[^"]*(?=">) 

直接为您带来您想要的东西。

用grep测试:

kent$  echo '<a href="/sites/all/themes/code.php">some text</a>'|grep -oP '(?<=<a href=")[^"]*(?=">)'                                    
/sites/all/themes/code.php

正则表达式:删除<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