0

我想从我的 php 字符串中删除一些关键字、符号、字母等。我正在尝试添加它,但效果不太好。

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

几乎我想从字符串中删除单词 mp3、mp4、./、apples。

请帮助指导我,在此先感谢!

4

2 回答 2

3

第一:[]在正则表达式中引入了一个字符类。连字符用于表示两个符号之间的字符范围。因此,您的正则表达式会进行太多擦除(如我所想)的原因是[=$'%-mp4mp3]因为=, $, ', everything from % to m (72 characters actually!), p, 3, 4.

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

将您的正则表达式更改为:

"/[=$'%-]|mp3|mp4/u"
于 2012-07-29T15:09:37.137 回答
2

你不需要正则表达式。

$string = "Your original string here";
$keywords = array('mp3', 'mp4');
echo str_replace($keywords, '', $string);
于 2012-07-29T15:06:53.063 回答