【发布时间】:2018-08-27 10:18:16
【问题描述】:
我想知道如何匹配这个例子:
https://regex101.com/r/wmvSDY/1
我需要能够在触发器之前或之后替换单个(也不是强制性的)<br>,但不能替换两次。
<br>[trigger]...[/trigger]<br><br>
<br> 的出现可以是完全随机的。
<br><br>[trigger]...
[/trigger]<br><br>
有效匹配:
1. **[trigger]...[/trigger]<br>**
2. **<br>[trigger]...[/trigger]**
3. **<br>[trigger]...[/trigger]<br>**
我当前的 preg_replace 如下所示:
"/(?:<br>)?\[trigger\](.*?)\[\/trigger\](?:<br>)?/is"
它只在触发器之前或之后匹配可能的单个<br>,而不关心<br> 是否是集合的一部分。请帮我扩展它,让它满足我的需要。
基本上我想匹配触发器,并且在之前或之后(但不是双重)有一个中断时将其包含在匹配中,以便我可以替换 **
【问题讨论】:
-
谢谢,因为我忘了提,所以让我扩展一下。有时在触发器之前根本没有休息,我也需要匹配这些触发器。基本上我想匹配触发器,并且在之前或之后(但不是双重)有一个中断时将其包含在匹配中,以便我可以替换。
-
需要匹配整个触发器+
之前或之后的单次出现(但不是两次) -
感谢您这样做。用示例文本的链接更新了我的问题。
标签: php regex preg-replace