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

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

问题描述:

这是我的正则表达式:如何将bb样式语法与正则表达式匹配?

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

这是我的主题:

YouTube的是这里[Y] 2GJSVlIGmQI [/ Y]

preg_match()不匹配任何从我的主题。

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

谢谢!

+2

您必须从正则表达式中删除'^'字符。 – Buddy

+1

您应该使用与'/'不同的分隔符,以便您不必转义它,并使用'/ x'修饰符,以便您有机会阅读该死的东西:'preg_match('@ \ [y \](。*?)\ [/ y \] @x',......'。 – tchrist

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

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

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

// 2GJSVlIGmQI 
echo $arr[1]; 
+0

非常感谢您回答我的问题:)非常有帮助! – fenerlitk

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

你必须在一开始就删除^,就像这样:

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

^做什么,只有当它是在的开始相匹配的表达字符串。删除它意味着表达式将匹配字符串中任何位置的模式。

+0

非常感谢! – fenerlitk

+0

@fenerlitk没问题。不要忘记把这个标记为正确的答案,如果你看到它是这样的:-) – Bojangles

+0

我真的很感激你的答案,并认为这是正确的答案以及巴迪的答案,但我选择巴迪的答案作为正确的答案,因为1。他回答了我的两个问题,并且2.他的声誉比你的低,所以我想成为票价。我希望我能标记两个答案是正确的。再次感谢。 :) – fenerlitk