我写了一个正则表达式来去掉BBCode标签 - 它只是将允许的标签去掉(以后再计算没有标签的字符串长度)。PHP RegEx扩展 - 如何仅剥离url = *?
我不是专家,当谈到正则表达式 - 那么一个小时后,我发现这几乎工作:
$pattern = "/\[\/?(i|b|u|url(.*?)|list|li)[\]\[]*\]/i";
$stripped = preg_replace($pattern, '', $text);
只剥去允许了六个标签(并没有更多的 - 它是应该)以及可以像'url = http://someurl'一样扩展的特殊标记'url'。
I.e.
in: [url=someurl]Lorem[/url] ipsum [test]dolor[/test] sit [b]amet[/b].
out: Lorem ipsum [test]dolor[/test] sit amet.
但问题是,它不只是去掉'url = [sometext]',而且'urlipsum'。 我试图添加一个'='进行解析,但无法达到这一点。
有没有人有我的提示如何只删除网址时,它= =?
BBCode是一种太复杂的语言,不能被正则表达式解析。你有没有试过BBCode解析器? – 2010-01-10 12:07:40
我有一个输出组件,但没有只剥去所有标签。我只是用它来计算长度 - 因为在插入标签时,bbcode标签不会被视为使用的字符。 我发现BBcode的梨类无法达到我的期望,做得比我想要的还要多。 – 2010-01-10 12:13:36