首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP regex查找未被其他BBCode包围的BBCode

PHP regex查找未被其他BBCode包围的BBCode
EN

Stack Overflow用户
提问于 2014-10-21 04:31:43
回答 2查看 103关注 0票数 1

我使用以下正则表达式在论坛帖子中查找IMG bbcode及其内容:

代码语言:javascript
复制
~\[img(?:=[\'"]?([^,]*?)(?:,[^]\'"]+)?[\'"]?)?]([^\[]+)?\[/img]~i

到目前为止,这是可行的,但我需要定义异常。我必须找到所有的IMG bbcode,它们没有被TT或CODE bbcode包围。我并不打算解析BBCodes (因为这是由论坛软件自己完成的)。

所以我想要这里的img bbcode (它正在工作,使用上面的正则表达式):

代码语言:javascript
复制
Hello, this is an example: [img]xxx[/img] - Yay!

但不是从那里

代码语言:javascript
复制
[tt]this is a test [img]xxx[/img] yolo![/tt]

而不是从这里

代码语言:javascript
复制
[code=php]<?php
echo '[img=xxx][/img]';[/code]

你有什么想法,怎么做到这一点?我使用的是PHP (以防仅使用regex的解决方案不可能实现)。

EN

回答 2

Stack Overflow用户

发布于 2019-07-10 22:24:35

您还可以使用T-Regx library

代码语言:javascript
复制
pattern('\[((?:(?!img).)*?)\](?:.*?)\[\/\1\]|\[img.*\](.*?)\[\/img\]')->test($input)
票数 1
EN

Stack Overflow用户

发布于 2014-10-21 05:34:35

您可以对匹配的第二个子模式使用此模式

代码语言:javascript
复制
\[((?:(?!img).)*?)\](?:.*?)\[\/\1\]|\[img.*\](.*?)\[\/img\]  

http://regex101.com/r/tF1tX3/2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26474410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档