0

我有以下 preg_replace 功能

preg_replace('/[\$,Audio, CD, Audiobook, MP3 Audio, Unabridged]/','',$audibleinnertextpieces)

这是我替换 $ 或整个字符串的正则表达式

Audio, CD, Audiobook, MP3 Audio, Unabridged

出于某种原因,它正在删除我所有字符串中的 U,如果发现整个字符串匹配,我只想替换Audio, CD, Audiobook, MP3 Audio, Unabridged

4

5 回答 5

3

你可以使用str_replace

str_replace(array('$', 'Audio, CD, Audiobook, MP3 Audio, Unabridged'), '', $str);
于 2013-05-13T15:28:09.343 回答
3

不要将正则表达式用于此类搜索。为什么不使用普通的 str_replace?

$str = str_replace(array('$', 'Audio, CD, Audiobook, MP3 Audio, Unabridged'), '', $source_string);
于 2013-05-13T15:28:24.650 回答
2

为什么不直接使用str_replace

str_replace(array('$','Audio, CD, Audiobook, MP3 Audio, Unabridged'),'',$string);

如果您知道要替换的 EXACT 字符串,则正则表达式是多余的。

于 2013-05-13T15:28:54.643 回答
0

在正则表达式中,方括号创建一个字符类,它将括号之间的任何字符中的一个字符。所以[abc]将匹配“a”、“b”或“c”。

如果你想匹配$或者Audio, CD, Audiobook, MP3 Audio, Unabridged你想要交替,这是通过用 a 分隔片段来完成的|

preg_replace('/\$|Audio, CD, Audiobook, MP3 Audio, Unabridged/','',$audibleinnertextpieces)
于 2013-05-13T15:29:03.753 回答
0

您可以使用正则表达式

$regex = "/\$|Audio, CD, Audiobook, MP3 Audio, Unabridged/"

它将搜索 $ 符号或整个字符串。然后只需使用

$result = preg_replace($regex, '' ,$audibleinnertextpieces)

这将删除任何搜索词

于 2013-05-13T15:34:32.477 回答