2013-08-21 100 views
1

我試圖在使用幾個例程和外部服務(akismet)發佈之前過濾掉垃圾郵件,但是當用逗號分隔的單詞或單詞形成時,它們似乎都失敗與空標籤。例如使用正則表達式從字符串中刪除逗號和空標記

B [C] [/ U]û[U] [/ U]值Y [i] [/ I]米並[b] [/ B]ë< - > buyme

B,U, y,m,e < - > buyme

有沒有人知道一個好的ColdFusion正則表達式去除這種行爲之前我可以發佈到aksimet進行處理?

回答

0

首先:你檢查過Akismet是否已經沒有這樣做?

我非常懷疑它已經做了所有這些處理(和更多),所以你實際上並不需要。


無論如何,假設這是BB代碼,因此,相關標籤將是粗體/斜體/下劃線,你可以替換它們:

TextForAkismet = rereplace(TextForAkismet , '\[([biu])\]\[/\1\]' , '' , 'all') 

如果有其他的空標籤要刪除,只需更新捕獲的組(括號中的位)即可。爲了滿足潛在的屬性(但仍然是一個空標籤),一個快速和骯髒的方法是在標籤名稱之後使用[^\]]*(在捕獲的組之外)。

'\[([biu]|img|url)[^\]]*\]\[/\1\]' 

根據您正在使用的bbcode的話,你可能需要處理引用括號這將需要一個更復雜的表達式。


要刪除字母之間出現逗號,使用方法:

TextForAkismet = rereplace(TextForAkismet , '\b,\b' , '' , 'all') 

(其中\b匹配的字母數字和非字母數字之間的任何位置。)

+0

精湛,這是工作,就像我需要的。 – James

相關問題