从字符串中删除我想要的东西

时间:2012-07-29 14:55:37

标签: php regex preg-replace

我想从我的php字符串中删除一些关键字,符号,字母等。我正在尝试添加它,但它不能很好地工作。

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

我想要从字符串中删除单词mp3,mp4,。/,apple。

请提前帮助指导我!

2 个答案:

答案 0 :(得分:3)

首先:正则表达式中的[]引入了一个字符类。连字符用于表示两个符号之间的字符范围。所以你的正则表达式会产生太多的删除(正如我想的那样)是因为[=$'%-mp4mp3]意味着=, $, ', everything from % to m (72 characters actually!), p, 3, 4

第二:你的正则表达式不会抓取“坏”字符/关键字。实际上,你删除了不良字符/关键字后的标点符号,因为负向前瞻是元序列(它不包含在匹配中)。

将正则表达式更改为:

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

答案 1 :(得分:2)

你不需要正则表达式。

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