2012-07-29 195 views
0

我想從我的PHP字符串中刪除幾個關鍵字,符號,字母等。我正在嘗試添加它,但效果不佳。從字符串中刪除任何我想要的字符

$string = preg_replace("/(?![=$'%-mp4mp3])\p{P}/u","", $check['title']); 

差不多我想從字符串中刪除單詞mp3,mp4,./,apples。

請幫助引導我,在此先感謝!

+0

與標誌(linux下的bash的cron殺死)是什麼?你在尋找一個PHP解決方案還是一個Bash解決方案? – tripleee 2012-07-29 15:48:17

+0

最好是PHP,但sh也很好。 – thevoipman 2012-07-29 16:45:51

回答

2

你不需要正則表達式。

$string = "Your original string here"; 
$keywords = array('mp3', 'mp4'); 
echo str_replace($keywords, '', $string); 
+0

我將如何刪除以下內容:。 /? – thevoipman 2012-07-29 16:30:40

+0

@thevoipman只需將它添加到數組中:'array('mp3','mp4','./','apples')' – 2012-07-29 16:40:46

+0

嗯,這很奇怪,我必須再次測試這個,我試過了,不起作用。這個方法比正則表達式更容易理解。再次感謝! – thevoipman 2012-07-29 16:46:30

3

第一個:[]在正則表達式中引入了一個字符類。連字符用於表示兩個符號之間的字符範圍。所以你的正則表達式會造成太多擦除的原因(我想)是因爲[=$'%-mp4mp3]意味着=, $, ', everything from % to m (72 characters actually!), p, 3, 4

第二:你的正則表達式不會抓住「壞」字符/關鍵字。實際上,在壞字符/關鍵字之後,您會刪除標點符號,因爲負向預測是元序列(它不包含在匹配中)。

您正則表達式更改爲:

"/[=$'%-]|mp3|mp4/u" 
+0

謝謝。我有一個主要的學習曲線,學習正則表達式已經導致我失去了一些腦細胞哈哈。我永遠無法理解正則表達式!感謝您的提示。我已經設法在mp3和mp4之間插入其他詞語。我試圖刪除\以及,所以我只是把\ /後=。看起來像這樣:(「/[=\//''%-.]|mp3|blah|blah|blah – thevoipman 2012-07-29 16:45:27