我寫了一個正則表達式來去掉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