0

PHP文字列から削除したいキーワード、記号、文字などをいくつか取得しました。追加しようとしていますが、うまく機能しません。

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

文字列からmp3、mp4、./、applesという単語を削除したいと思います。

私を案内してください、事前に感謝します!

4

2 に答える 2

3

まず[]、正規表現で文字クラスを導入します。ハイフンは、2 つの記号の間の文字範囲を表すために使用されます。したがって、正規表現が(私が推測するように)あまりにも多くの消去を行う理由は、[=$'%-mp4mp3]means =, $, ', everything from % to m (72 characters actually!), p, 3, 4.

2番目:正規表現は「悪い」文字/キーワードを取得しません。実際には、否定的な先読みはメタ シーケンスであるため、不適切な文字/キーワードの後に​​句読点を削除します (一致には含まれません)。

正規表現を次のように変更します。

"/[=$'%-]|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 に答える