2012-11-11 20 views
0

我使用一個相當簡單的正則表達式來發布鏈接來改變這個區域來說[LINK REMOVED]。我想要做的是完全清除任何他們鍵入的空間,而不是僅僅刪除鏈接本身。請協助我修復我的正則表達式!真的難住這裏

我對regexes還不是很好,所以我真的可以使用幫助!這是我目前所擁有的。

$comment = preg_replace('%[a-zA-Z0-9\-\.]+\. 
(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)%', '[LINK REMOVED]', $comment); 
+0

舉例說明要修改的文本和預期的輸出。 – January

+0

輸入:訪問我的垃圾郵件鏈接[url = http:// imannoying /] Cialis [/ url],EopnLbe,http:// stillannoying/Buy cheap cialis! 輸出: (輸出我只是想要一個空間,以便他們的郵件被我的代碼拒絕) – micker

+0

儘管如果它與頂級正則表達式類似,但將其所有帖子都刪除,我會非常高興。不知道如何去做這件事。 – micker

回答

1

你既可以消耗在比賽中整體點評:

$comment = preg_replace('%^.*[a-z0-9.-]+\.(com|org|net|mil|edu).*$%is', ' ', $comment); 

或者乾脆使用preg_match並刪除評論自己:

if(preg_match('%[a-z0-9.-]+\.(com|org|net|mil|edu)%i', $comment)) 
    $comment = ' '; 

請注意,我也稍微優化正則表達式通過使用不區分大小寫的修飾符i並去除字符類中的不必要的轉義符(爲此,連字符必須位於cha的末尾儘管)。

+0

謝謝你!我現在就試試看! – micker