我使用以下正则表达式在论坛帖子中查找IMG bbcode及其内容:
~\[img(?:=[\'"]?([^,]*?)(?:,[^]\'"]+)?[\'"]?)?]([^\[]+)?\[/img]~i到目前为止,这是可行的,但我需要定义异常。我必须找到所有的IMG bbcode,它们没有被TT或CODE bbcode包围。我并不打算解析BBCodes (因为这是由论坛软件自己完成的)。
所以我想要这里的img bbcode (它正在工作,使用上面的正则表达式):
Hello, this is an example: [img]xxx[/img] - Yay!但不是从那里
[tt]this is a test [img]xxx[/img] yolo![/tt]而不是从这里
[code=php]<?php
echo '[img=xxx][/img]';[/code]你有什么想法,怎么做到这一点?我使用的是PHP (以防仅使用regex的解决方案不可能实现)。
发布于 2019-07-10 22:24:35
您还可以使用T-Regx library
pattern('\[((?:(?!img).)*?)\](?:.*?)\[\/\1\]|\[img.*\](.*?)\[\/img\]')->test($input)发布于 2014-10-21 05:34:35
您可以对匹配的第二个子模式使用此模式
\[((?:(?!img).)*?)\](?:.*?)\[\/\1\]|\[img.*\](.*?)\[\/img\] http://regex101.com/r/tF1tX3/2
https://stackoverflow.com/questions/26474410
复制相似问题