如何将 bb 风格语法与正则表达式相匹配?

发布于 2024-12-01 19:39:13 字数 263 浏览 1 评论 0原文

这是我的正则表达式:

/^\[y\](.*?)\[\/y\]/

这是我的主题:

youtube 在这里 [y]2GJSVlIGmQI[/y]

preg_match() 与我的主题中的任何内容都不匹配。

还有更好的解决方案来捕获 [y] [/y] 内的代码吗?

谢谢!

This is my regular expression:

/^\[y\](.*?)\[\/y\]/

This is my subject:

youtube is here [y]2GJSVlIGmQI[/y]

but preg_match() doesn't match anything from my subject.

And also is there a better solution to capture the code inside the [y] [/y]'s?

Thanks!

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

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

发布评论

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

评论(3

南街女流氓 2024-12-08 19:39:13

您必须从正则表达式中删除 ^ 字符。 ^ char 匹配字符串的开头。

$str = 'youtube is here [y]2GJSVlIGmQI[/y]';

preg_match('/\[y\](.*?)\[\/y\]/', $str, $arr);

// 2GJSVlIGmQI
echo $arr[1];

You have to remove ^ char from your regex. ^ char matches the start of a string.

$str = 'youtube is here [y]2GJSVlIGmQI[/y]';

preg_match('/\[y\](.*?)\[\/y\]/', $str, $arr);

// 2GJSVlIGmQI
echo $arr[1];
窝囊感情。 2024-12-08 19:39:13

您需要删除开头的 ^,如下所示:

/\[y\](.*?)\[\/y\]/

^ 的作用是匹配该表达式仅当它位于字符串开头时。删除它意味着表达式将匹配字符串中任何位置的模式。

You need to remove the ^ at the beginning, like this:

/\[y\](.*?)\[\/y\]/

What the ^ does is match that expression only if it is at the start of the string. Removing it means the expression will match the pattern anywhere in the string.

原谅我要高飞 2024-12-08 19:39:13

使用:/\[y\](.*?)\[\/y\]/

Use this: /\[y\](.*?)\[\/y\]/

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