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用于隔离尾随的嵌套引号标记


猜你喜欢
- 覆盖 Magento 社区模块控制器的问题 2022-01-01
- 使用 GD 和 libjpeg 支持编译 PHP 2022-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
- PHP - if 语句中的倒序 2021-01-01
- 如何从数据库中获取数据以在 laravel 中查看页面? 2022-01-01
- PHP foreach() 与数组中的数组? 2022-01-01
- Laravel 5:Model.php 中的 MassAssignmentException 2021-01-01
- openssl_digest vs hash vs hash_hmac?盐与盐的区别HMAC? 2022-01-01
- 如何在 Symfony2 中正确使用 webSockets 2021-01-01
- 如何使用 Google API 在团队云端硬盘中创建文件夹? 2022-01-01