我想從我的PHP字符串中刪除幾個關鍵字,符號,字母等。我正在嘗試添加它,但效果不佳。從字符串中刪除任何我想要的字符
$string = preg_replace("/(?![=$'%-mp4mp3])\p{P}/u","", $check['title']);
差不多我想從字符串中刪除單詞mp3,mp4,./,apples。
請幫助引導我,在此先感謝!
我想從我的PHP字符串中刪除幾個關鍵字,符號,字母等。我正在嘗試添加它,但效果不佳。從字符串中刪除任何我想要的字符
$string = preg_replace("/(?![=$'%-mp4mp3])\p{P}/u","", $check['title']);
差不多我想從字符串中刪除單詞mp3,mp4,./,apples。
請幫助引導我,在此先感謝!
你不需要正則表達式。
$string = "Your original string here";
$keywords = array('mp3', 'mp4');
echo str_replace($keywords, '', $string);
我將如何刪除以下內容:。 /? – thevoipman 2012-07-29 16:30:40
@thevoipman只需將它添加到數組中:'array('mp3','mp4','./','apples')' – 2012-07-29 16:40:46
嗯,這很奇怪,我必須再次測試這個,我試過了,不起作用。這個方法比正則表達式更容易理解。再次感謝! – thevoipman 2012-07-29 16:46:30
第一個:[]
在正則表達式中引入了一個字符類。連字符用於表示兩個符號之間的字符範圍。所以你的正則表達式會造成太多擦除的原因(我想)是因爲[=$'%-mp4mp3]
意味着=, $, ', everything from % to m (72 characters actually!), p, 3, 4
。
第二:你的正則表達式不會抓住「壞」字符/關鍵字。實際上,在壞字符/關鍵字之後,您會刪除標點符號,因爲負向預測是元序列(它不包含在匹配中)。
您正則表達式更改爲:
"/[=$'%-]|mp3|mp4/u"
謝謝。我有一個主要的學習曲線,學習正則表達式已經導致我失去了一些腦細胞哈哈。我永遠無法理解正則表達式!感謝您的提示。我已經設法在mp3和mp4之間插入其他詞語。我試圖刪除\以及,所以我只是把\ /後=。看起來像這樣:(「/[=\//''%-.]|mp3|blah|blah|blah – thevoipman 2012-07-29 16:45:27
與標誌(linux下的bash的cron殺死)是什麼?你在尋找一個PHP解決方案還是一個Bash解決方案? – tripleee 2012-07-29 15:48:17
最好是PHP,但sh也很好。 – thevoipman 2012-07-29 16:45:51