PHP正则表达式反向引用故障

时间:2015-01-22 17:40:54

标签: php regex backreference

想在mybb帖子中解析自定义版主的标签。

  

[mod =" Nomad"] Curabitur eu ultricies nunc [/ mod]。   Donec et luctus nisi,一个无尽的ipsum。   [mod =" Nomad"] Morbi feugiat tellus lectus,是一种调节器物质[/ mod]。

以下php正则表达式不匹配:

#\[mod=(['\"])(.*?)\1](.*?)\[/mod]#

虽然这个有用(注意在backref中添加了g)

#\[mod=(['\"])(.*?)\g1](.*?)\[/mod]#

除了这个(使用命名的子模式似乎有点矫枉过正)

#\[mod=(?P<quot>['\"])(.*?)(?P=quot)](.*?)\[/mod]#

编辑:这个正则表达式用于获取[mod] [/ mod]中的部分,以便我可以设置它或将其隐藏远离普通用户。

这是一个知道故障还是我遗失了什么?

由于

1 个答案:

答案 0 :(得分:0)

这里有你想要的东西:

\[mod=(['"])(.*?)\1\](.*?)\[\/mod\]

演示:https://regex101.com/r/zB5bX3/2