Heim >Backend-Entwicklung >PHP-Tutorial >一个正则表达式的问题。有点不理解了

一个正则表达式的问题。有点不理解了

WBOY
WBOYOriginal
2016-06-23 14:26:01895Durchsuche

<?php$a='<span class="ico-block"><a href="#"><img  src="http://www.oxford-royale.co.uk/2013/wp-content/themes/ora/images/ico19.png" / alt="一个正则表达式的问题。有点不理解了" ></a></span><h2>';$a=preg_replace("/<[^>]+?>/","\\0\\2\\4\\5",$a);var_dump($a);?>


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


回复讨论(解决方案)

一个向后引用都没有?

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

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

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

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

把里面的超链接标签去掉,变成
$a='一个正则表达式的问题。有点不理解了

';

先声明,本人不懂PHP,所以不知道preg_replace这是个什么函数
首先,让我按照正常逻辑分析一下你这个正则表达式:
/]+?>/
/和都是是普通字符,由//结尾(如果是匹配整个单词或字符的话那么使用\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" / alt="一个正则表达式的问题。有点不理解了" ></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" / alt="一个正则表达式的问题。有点不理解了" ></a></span><h2>';$str=preg_replace("/(?:<a[^>]*>)(.*)(?:<\/a>)/", "\\1", $a);print_r($str);

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:关于递归调用的问题Nächster Artikel:格式化数字的方法?