我想从我的 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。
请帮助指导我,在此先感谢!
第一:[]
在正则表达式中引入了一个字符类。连字符用于表示两个符号之间的字符范围。因此,您的正则表达式会进行太多擦除(如我所想)的原因是[=$'%-mp4mp3]
因为=, $, ', everything from % to m (72 characters actually!), p, 3, 4
.
第二:您的正则表达式不会抓取“坏”字符/关键字。实际上,您在坏字符/关键字之后删除标点符号,因为负前瞻是元序列(它不包含在匹配中)。
将您的正则表达式更改为:
"/[=$'%-]|mp3|mp4/u"
你不需要正则表达式。
$string = "Your original string here";
$keywords = array('mp3', 'mp4');
echo str_replace($keywords, '', $string);