如何将bb样式语法与正则表达式相匹配


How do I match bb style syntax with regular expressions?

我的正则表达式:

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

这是我的主题:

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

但是preg_match()与我的受试者的任何东西都不匹配。

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

谢谢!

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

$str = 'youtube is here [y]2GJSVlIGmQI[/y]';
preg_match('/'[y'](.*?)'['/y']/', $str, $arr);
// 2GJSVlIGmQI
echo $arr[1];

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

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

^所做的是匹配表达式,如果它在字符串的开头。删除它意味着表达式将匹配字符串中任何地方的模式。

使用/'[y'](.*?)'['/y']/