如何使用php查找和删除字符串中的最后一个链接标记?

如何使用php查找和删除字符串中的最后一个链接标记?,php,html,regex,Php,Html,Regex,我有一个类似这样的字符串,但链接的数量可以根据不同情况而有所不同: <a>link 1</a> >> <a>link 2</a> >> <a>link 3</a> >> <a>link 4</a> 链接1>>链接2>>链接3>>链接4 我想删除该字符串中的最后一个链接并进行如下转换: <a>link 1</a> >>

我有一个类似这样的字符串,但链接的数量可以根据不同情况而有所不同:

<a>link 1</a> >> <a>link 2</a> >> <a>link 3</a> >> <a>link 4</a>    
链接1>>链接2>>链接3>>链接4
我想删除该字符串中的最后一个链接并进行如下转换:

<a>link 1</a> >> <a>link 2</a> >> <a>link 3</a> >> link 4    
链接1>>链接2>>链接3>>链接4
有一个简单的函数吗?我知道我可以使用几个功能,如preg_match、preg_match_all、explode等。。。使用这些函数,删除第一个链接标记相当容易,尽管删除最后一个链接标记有点令人困惑

感谢您的帮助。

使用DOM解析器,例如

$html=”

此代码输出

<p> 
<a>link 1</a> &gt;&gt; <a>link 2</a> &gt;&gt; <a>link 3</a> &gt;&gt;     
link 4</p>

.

使用DOM解析器,例如

$html=”

此代码输出

<p> 
<a>link 1</a> &gt;&gt; <a>link 2</a> &gt;&gt; <a>link 3</a> &gt;&gt;     
link 4</p>

.

从regexp开始

$str = '<p> 
<a>link 1</a> >> <a>link 2</a> >> <a>link 3</a> >> <a>link 4</a>    
</p>';
echo preg_replace('#^(.*)<a[^>]*?>(.*?)</a>(.*?)#im', '$1$2$3', $str);
$str='
链接1>>链接2>>链接3>>链接4

'; echo preg_替换(“#^(.*))*?>(.*)(.*)(.*)#im’,“$1$2$3',$str”);
从regexp开始

$str = '<p> 
<a>link 1</a> >> <a>link 2</a> >> <a>link 3</a> >> <a>link 4</a>    
</p>';
echo preg_replace('#^(.*)<a[^>]*?>(.*?)</a>(.*?)#im', '$1$2$3', $str);
$str='
链接1>>链接2>>链接3>>链接4

'; echo preg_替换(“#^(.*))*?>(.*)(.*)(.*)#im’,“$1$2$3',$str”);

您是否有办法控制此输出?解析HTML是一个相对繁重的解决方案,因此如果你能在源代码处而不是以后修复它,那将是更好的选择。对于regex,你可以只使用
*@mario你能给我一个关于regexp的例子吗?一段代码可能是?有什么方法可以控制这个输出吗?解析HTML是一个相对繁重的解决方案,因此如果你能在源代码处而不是以后修复它,那将是更好的选择。对于regex,你可以只使用
*@mario你能给我一个关于regexp的例子吗?一段代码可能是完美的。非常感谢。你能给我一个我可以学习php regexp函数的链接吗?@monit不幸的是,我在这里不能给出任何好的建议-我知道许多编程语言,其中一些语言使用regexp操作,所以我不记得我读过什么来理解它们。我认为它一开始与Perl有关,对您也很有用,因为PCRE(PREG-Perl正则表达式使用它)=Perl可比较正则表达式。打开任何一本关于Perl的regexp的书,然后读一读,谢谢你提供的有见地的信息,但我不明白为什么人们喜欢并投票给一个更复杂的答案,而不是你的答案。对我来说,最好有简单的解决方案。它可能更简单,但它并不十分健壮。那么
@alex LOL呢?乍一看,我认为这个函数在你的例子中也会失败,但即使在你的例子中,它也能完美地工作。还有其他想法吗?很好用。非常感谢。你能给我一个我可以学习php regexp函数的链接吗?@monit不幸的是,我在这里不能给出任何好的建议-我知道许多编程语言,其中一些语言使用regexp操作,所以我不记得我读过什么来理解它们。我认为它一开始与Perl有关,对您也很有用,因为PCRE(PREG-Perl正则表达式使用它)=Perl可比较正则表达式。打开任何一本关于Perl的regexp的书,然后读一读,谢谢你提供的有见地的信息,但我不明白为什么人们喜欢并投票给一个更复杂的答案,而不是你的答案。对我来说,最好有简单的解决方案。它可能更简单,但它并不十分健壮。那么
@alex LOL呢?乍一看,我认为这个函数在你的例子中也会失败,但即使在你的例子中,它也能完美地工作。还有其他想法吗?谢谢你的回答,但我想我遗漏了一些东西。使用简单的regexp函数是否有一个我没有注意到的缺点?使用dom解析器有什么特别的原因吗?谢谢你的回答,但我想我遗漏了一些东西。使用简单的regexp函数是否有一个我没有注意到的缺点?使用dom解析器有什么特别的原因吗?