Regex to isolate trailing nested quote tags(Regex用于隔离尾随的嵌套引号标记)
本文介绍了Regex用于隔离尾随的嵌套引号标记的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用的是一些经过多年升级的旧PHP论坛软件,但在此过程中,有些帖子的底部包含无报酬的[报价]区块。
我正在尝试找出一种运行PHP preg_place的方法来正则表达式它们。我只想删除显示在帖子内容下面的引用标记(可能还包含嵌套的引用标记)。
例如,保留原样的帖子可能如下所示:
Here is the example post text
[QUOTE]
This is an appropriate quote
[/QUOTE]
Here is more post content
在类似下面的帖子中,我想尝试删除最后一句挡路:
Here is the example post text
[QUOTE]
This is an appropriate quote
[/QUOTE]
Here is more post content
[QUOTE]
This is an unnecessary quote, as it's below all of the post text
[QUOTE]
Here's an unnecessary nested quote, just to confuse things.
[/QUOTE]
[/QUOTE]
我花了几个小时试图想出一个正则表达式来捕获最后一种类型的引号块,但没有成功。我知道我需要以以下内容结束,因为结束引号在帖子的末尾总是有这个标签:
[/QUOTE]$
有没有办法捕获正则表达式中的整个最后引号块,包括任何可能的嵌套引号?到目前为止,我尝试过的任何操作都将尝试匹配嵌套的开始引号标记和最终结束标记(而不是匹配的对)。
推荐答案
您可能希望使用递归,但是锚定方法:
([QUOTE[^][]*]
(?:[^][]++|(?1))++
[/QUOTE])
请参阅a demo on regex101.com。这里只匹配末尾的报价挡路()。
这篇关于Regex用于隔离尾随的嵌套引号标记的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:Regex用于隔离尾随的嵌套引号标记
基础教程推荐
猜你喜欢
- 如何在 Laravel 中使用 React Router? 2022-01-01
- YouTube API v3 点赞视频,但计数器不增加 2022-01-01
- 在PHP中根据W3C规范Unicode 2022-01-01
- Cron Jobs 调用带有变量的 PHP 脚本 2022-01-01
- 如何在 Laravel 5.3 注册中添加动态下拉列表列? 2021-01-01
- 有什么方法可以用编码 UTF-8 而不是 Unicode 返回 PHP`json_encode`? 2021-01-01
- PHP PDO MySQL 查询 LIKE ->多个关键词 2021-01-01
- 学说 dbal querybuilder 作为准备好的语句 2022-01-01
- PHP 类:全局变量作为类中的属性 2021-01-01
- 如何替换eregi() 2022-01-01
