【发布时间】:2023-03-27 15:50:01
【问题描述】:
当我使用时,我不知道如何让我的正则表达式选择多行
[b]Test[/b]
我的 BB 代码工作正常,但当我尝试时
[b]
Test
[/b]
我已经读到我应该在我的正则表达式中使用修饰符/s /m,但我不知道如何使用,我尝试过:preg_match_all('\[(' . $tags . ')=?(.*?)\](.+?)\[/\1\]/m/s' 但它不起作用。
有什么建议吗?
工作示例:
$tags = 'b|i|size|color|center|quote|url|img';
while (preg_match_all('`\[(' . $tags . ')=?(.*?)\](.+?)\[/\1\]`', $string, $matches))
foreach ($matches[0] as $key => $match) {
list($tag, $param, $innertext) = array($matches[1][$key], $matches[2][$key], $matches[3][$key]);
【问题讨论】:
-
我不确定这就是全部,但您缺少一个开始分隔符(另一个
/)并且应用多个修饰符无需额外的斜杠:'/.../ms' -
哦,我明白了。您的分隔符是
`。在这种情况下,您根本不需要斜杠,只需:'`\[(' . $tags . ')=?(.*?)\](.+?)\[/\1\]`ms' -
完美!非常感谢
-
那我会做出正确的回答。
-
使用 ` 和 / 有什么区别?你能告诉我和例子在哪里只使用 / 。
标签: php regex multiline bbcode