ホームページ  >  記事  >  バックエンド開発  >  正規表現の質問です。ちょっと分かりません

正規表現の質問です。ちょっと分かりません

WBOY
WBOYオリジナル
2016-06-23 14:26:01854ブラウズ

<?php$a='<span class="ico-block"><a href="#"><img src="http://www.oxford-royale.co.uk/2013/wp-content/themes/ora/images/ico19.png" /></a></span><h2>';$a=preg_replace("/<[^>]+?>/","\\0\\2\\4\\5",$a);var_dump($a);?>


这个好像错了,请问错在哪里了?有点不明白了


回复讨论(解决方案)

一个向后引用都没有?

正则变量不是按括号来区分的么,没有括号怎么知道哪些是变量范围。
还有这也没有那么多变量呢。

都没看明白你这代码要干嘛

先声明,本人不懂PHP,所以不知道preg_replace这是个什么函数
首先,让我按照正常逻辑分析一下你这个正则表达式:
/549a3fd9a3c62568d8b32cd8627105c3]+?>/
/和0880974cf325dad6ecf498c284c95fe8都是是普通字符,由/cb9ce60cb9c45c95e3431fc4c9e54ebd/结尾(如果是匹配整个单词或字符的话那么使用\b和^还有$会更好?)
^>则表示除了>以外的字符
+则表示>以外的字符出现1次或多次
?出现在这里我就不知道什么意思了

但是,整篇看下来,诚如楼上所言,您,这是要干嘛?

把里面的超链接标签去掉,变成
$a='7d910a65657fd3092faeb6d2d1b929abe569733ca75cf5dfcd7c590bf58ee57354bdf357c58b8a65c66d7c19c8e4d114c1a436a314ed609750bd7c7d319db4da';

先声明,本人不懂PHP,所以不知道preg_replace这是个什么函数
首先,让我按照正常逻辑分析一下你这个正则表达式:
/549a3fd9a3c62568d8b32cd8627105c3]+?>/
/和0880974cf325dad6ecf498c284c95fe8都是是普通字符,由/cb9ce60cb9c45c95e3431fc4c9e54ebd/结尾(如果是匹配整个单词或字符的话那么使用\b和^还有$会更好?)
^>则表示除了>以外的字符
+则表示>以外的字符出现1次或多次
?出现在这里我就不知道什么意思了

但是,整篇看下来,诚如楼上所言,您,这是要干嘛?
我绝对不会承认自己学艺不精的。。懒惰模式。。?
o(?□?)o

$a='<span class="ico-block"><a href="#"><img src="http://www.oxford-royale.co.uk/2013/wp-content/themes/ora/images/ico19.png" /></a></span><h2>';$str=preg_replace("/<\/?a([^>]*)>/", "", $a);var_dump($str);


有些不严谨,清除所有a 开头的标签。

$a='<span class="ico-block"><a href="#"><img src="http://www.oxford-royale.co.uk/2013/wp-content/themes/ora/images/ico19.png" /></a></span><h2>';$str=preg_replace("/(?:<a[^>]*>)(.*)(?:<\/a>)/", "\\1", $a);print_r($str);

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。