php - 正则表达式如何向前看,看看是否有另一个匹配的结束部分?

标签 php regex bbcode lookahead

我正在使用正则表达式模式来查找 [code][/code] BB 标签的实例。 (这是在 PHP 中使用 pear_match/preg_relace/等的珍珠型正则表达式)

'~\[code\](.*?)\[\/code\]~is'

好吧,我的问题是我怎样才能让别人可以输入类似这样的内容:

[code][code]code here[/code][/code]

输入此内容的目的是向新手演示如何将他们的代码放入 [code][/code] 标签中。

目前,如果我输入那个,正则表达式将在“[/code]”的第一个实例处停止,而不是继续向前看以查看“[code]”的第二个实例

由于我是新用户,我无法发布图片,但这是输出的屏幕截图: http://i.imgur.com/t8zNh.png

我知道正则表达式中有一个术语叫做“正面展望”和“负面展望”,但我不太清楚它们的意思,或者它们是否与我的情况相关。有人可以帮我一下吗?谢谢。

编辑:对不起,我似乎没有足够的代表来 +1 任何东西。非常感谢您的帮助,而且速度非常快。

最佳答案

你可以试试这个模式

'~\[code\](.*?)(\[\/code\])+~is'

关于php - 正则表达式如何向前看,看看是否有另一个匹配的结束部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9222710/

相关文章:

php - 如何在循环中执行计数

PHP - CSV 到表未按预期转换

python - 正则表达式在第二次出现字符后匹配相邻数字

javascript - 如果文本超过一定长度,则显示阅读更多链接

php - PECL bbcode 包构建失败

javascript 二维码 php 元 url

php - php中的foreach循环构造javascript

regex - 搜索并替换文件中的第 n 次出现

java - 在java中使用正则表达式和split方法时遇到问题

java - <c :out> tag which allows more formatting like BBcode or Wiki 的替代方案