我正在尋找一個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. URL-BBCode正則表達式
- 3. 用C#解析多行BBCode正則表達式
- 4. Python的正則表達式解析器
- 5. 正則表達式{}解析
- 6. 正則表達式解析
- 7. 正則表達式解析
- 8. PHP的BBCode正則表達式替換
- 9. 正則表達式爲嵌套的BBCode
- 10. PHP的bbcode遞歸正則表達式
- 11. 解析器支架正則表達式
- 12. XML解析器與正則表達式
- 13. 包括解析器正則表達式
- 14. 使用正則表達式轉換BBCode
- 15. 正則表達式BBCode到HTML
- 16. Ruby正則表達式剝離BBCode
- 17. 解析字符串有或沒有正則表達式
- 18. javascript正則表達式來解析沒有協議的網址
- 19. Java的字符串解析沒有正則表達式
- 20. c#正則表達式列表解析
- 21. URI解析的正則表達式
- 22. 解析數據的正則表達式
- 23. 解析javascript中的正則表達式
- 24. 正則表達式解析的queryString
- 25. xml解析中的正則表達式
- 26. 正則表達式解析的robots.txt
- 27. 的Java ::解析正則表達式
- 28. syslog的Python正則表達式解析
- 29. 解析的正則表達式:: number :: sentence ::
- 30. PHP的正則表達式解析行
你爲什麼要避開正則表達式? (速度?) – tofutim 2011-05-25 17:38:39
因爲我不只是想替換標籤,我還想對標籤之間的內容做一點點處理。你有什麼建議嗎? – Teiv 2011-05-25 18:11:54
「我也想對標籤之間的內容做一點點調整,''preg_replace_callback()'對此非常有用。如果你能給我們一個你想要做什麼的可靠例子,我們可以給你更具體的建議。 – 2011-05-26 22:10:51