我编写了一个正则表达式来去除 BBCode 标签 - 它只是去除了允许的标签(以便稍后计算没有标签的字符串长度)。
我不是正则表达式方面的专家 - 所以一个小时后我发现这非常有效:
$pattern = "/\[\/?(i|b|u|url(.*?)|list|li)[\]\[]*\]/i";
$stripped = preg_replace($pattern, '', $text);
它只去除了允许的六个标签(而不是更多 - 它应该这样做)和特殊标签'url',可以像'url = http://someurl '一样扩展。
IE
in: [url=someurl]Lorem[/url] ipsum [test]dolor[/test] sit [b]amet[/b].
out: Lorem ipsum [test]dolor[/test] sit amet.
但问题是,它不仅去掉了“url=[sometext]”,还去掉了“urlipsum”。我试图添加一个'='进行解析,但无法达到重点。
有没有人提示我如何只在带有 = 时去掉 url?