我正在寻找一个Javascript或PHP中的BBCode解析器,而无需使用正则表达式。有人可以给我一个好的建议吗?没有正则表达式的BBCode解析器?
回答
建议使用正则表达式。
其他解决方案:
function bb_parse($str)
{
return str_replace(array('[b]', '[/b]'), array('<strong>', '</strong>'), $str);
}
这可以打破因接错结束标签解析可以结束了内容被包裹着的HTML标记,而不关闭。
Ehm,BB是一种递归格式,就像HTML一样。因此,我援引小马:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – 2012-04-20 08:40:29
有一个PECL extension for bbcode。您需要查看how to install PECL extensions才能使用它。
我相信PECL延伸段在我的几个测试中已经暂停了,所以请谨慎行事。 – 2011-05-25 17:44:20
如果你可以安装一个PECL扩展,您将能够使用BBCode functions
Zend的解析器可能是你在找什么http://framework.zend.com/manual/en/zend.markup.parsers.html
不幸的是,我发现它是最实用的功能的我评估过的BBCode解析器:当遇到格式错误的标记([b] asdf [/ wops I forgot to close my tag
)时,它倾向于在第一个格式错误的标记之后丢弃所有内容。其他bbcode解析器在简单地忽略坏标记方面做得更好。
所以我知道你说没有正则表达式,但我最近在JavaScript写了一个BBCode的解析器,我相信,因为它是不是简单的找到解决您的关注和替换,它使您能够访问内容中的标签。你可以在这里看到它的演示:
http://patorjk.com/bbcode-previewer/
,并得到源,在这里就可以写了起来:
http://patorjk.com/blog/2011/05/07/extendible-bbcode-parser-in-javascript/
我最近写在JavaScript中的bbcode解析器。
它可以做什么:
- 转换BB码字符串HTML字符串;
- 将HTML元素转换为BBCode字符串;
- 自动纠正BBCode字符串;
检查演示:UBBParser
- 1. BBCode正则表达式解析问题
- 2. Python的正则表达式解析器
- 3. 正则表达式为嵌套的BBCode
- 4. 包括解析器正则表达式
- 5. 使用正则表达式转换BBCode
- 6. 正则表达式BBCode到HTML
- 7. javascript正则表达式来解析没有协议的网址
- 8. c#正则表达式列表解析
- 9. 解析javascript中的正则表达式
- 10. 解析正则表达式 - (Not enough)的
- 11. Python的正则表达式解析
- 12. 正则表达式解析的robots.txt
- 13. 正则表达式解析的queryString
- 14. 问题的正则表达式解析
- 15. Scala的正则表达式解析URL
- 16. xml解析中的正则表达式
- 17. 如何解析这个没有正则表达式?
- 18. 没有正则表达式库的简单正则表达式?
- 19. PHP的 - BBCode分析器 - 递归[quote]用正则表达式和preg_replace
- 20. 正则表达式解析HTML
- 21. 如何解析正则表达式
- 22. 神交解析与正则表达式
- 23. 用正则表达式解析css
- 24. 解析和使用正则表达式
- 25. 正则表达式:解析出行
- 26. Ruby正则表达式:解析C++类
- 27. 错误解析正则表达式
- 28. 正则表达式解析URL PHP
- 29. 正则表达式HTTP头解析
- 30. MSBuild 4.0正则表达式解析
你为什么要避开正则表达式? (速度?) – tofutim 2011-05-25 17:38:39
因为我不只是想替换标签,我还想对标签之间的内容做一点点处理。你有什么建议吗? – Teiv 2011-05-25 18:11:54
“我也想对标签之间的内容做一点点调整,''preg_replace_callback()'对此非常有用。如果你能给我们一个你想要做什么的可靠例子,我们可以给你更具体的建议。 – 2011-05-26 22:10:51