2010-11-14 64 views
0

尝试从某些文本中剥离某些BBCode。我想删除[/ IMG]一[IMG]之间的所有内容,并使用一个PHP preg_replace函数的功能,例如:PHP需要preg_replace表达式帮助

Here is my image[img]http://www.abc.com/image1.jpg[/img] and more text 

匹配度:[IMG]后跟任意数目的字符,然后按[/ IMG的]

结果:

Here is my image and more text 

感谢。

+0

嗯,它不工作。我试过/ \\ [\ i \ m \ g \\] /并且看起来与[img]匹配。这是我无法弄清的字符串的其余部分。 – Mark 2010-11-14 02:03:02

+0

阅读http://regular-expressions.info/ – mario 2010-11-14 02:16:26

回答

1

首先,找到会符合您的BBCode标签模式:

\[img\][^\[]+\[/img\] 

唯一困难的部分是类[^\]]\[表示任何开头括号,而^意味着NOT。所以这个课程将匹配所有不是[的东西。
您也可以用.+来替换这个类,并使用U(ungreedy)选项。

既然你现在要使用哪种模式,你只需要用一个空字符串替换它即可。工作完成了!

这是一个非常基本的正则表达式,这一点很重要,你了解它,你能够重现它

1
/\[img\].*?\[\/img\]/i 

将采取[img][/img](情况大小写)

+0

上的一些教程谢谢。我会试一试。 – Mark 2010-11-14 02:07:05

0
之间打理一切

不要忘记将你的内容分组,例如'/[img](.+)[\/img]/i',所以在替换条件中,你可以参考标签之间的值'< img src =“$ 1”/ >'