使用 preg_match_all` 匹配所有方括号

发布于 2024-10-22 05:31:23 字数 314 浏览 2 评论 0原文

我试图匹配字符串中的多个方括号标签以从字符串中提取它们。

例如:

$string = 'Request: [CODE]sksdjdiwjwdwdkw[/CODE] Response: [CODE]sksdjdiwjwdwdkw[/CODE]';

preg_match_all('/\[CODE\](.*)\[\/CODE\]/',$string) 匹配第一个 [CODE] 和最后一个[/CODE]

有谁知道表达式应该是什么样子吗?

I'm trying to match multiple square bracket tags in a string to extract them from the string.

For example:

$string = 'Request: [CODE]sksdjdiwjwdwdkw[/CODE] Response: [CODE]sksdjdiwjwdwdkw[/CODE]';

preg_match_all('/\[CODE\](.*)\[\/CODE\]/',$string) matches everything between the first [CODE] and last [/CODE].

Does anyone have a idea on how the expression are suppost to look like?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ぽ尐不点ル 2024-10-29 05:31:23

尝试让你的匹配变得非贪婪:

preg_match_all('/\[CODE\](.*?)\[\/CODE\]/',$string)
                          ^^^

Try making your match non-greedy:

preg_match_all('/\[CODE\](.*?)\[\/CODE\]/',$string)
                          ^^^
百变从容 2024-10-29 05:31:23

不要使用 .* (比非贪婪更快)

preg_match_all('/\[CODE\]([^\[]+)\[\/CODE\]/',$string);

Don't use .* (faster than non-greedy)

preg_match_all('/\[CODE\]([^\[]+)\[\/CODE\]/',$string);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文