我想从我的php字符串中删除一些关键字,符号,字母等。我正在尝试添加它,但它不能很好地工作。
$string = preg_replace("/(?![=$'%-mp4mp3])\p{P}/u","", $check['title']);
我想要从字符串中删除单词mp3,mp4,。/,apple。
请提前帮助指导我!
答案 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);