preg_replace问题

时间:2011-08-18 14:29:13

标签: php regex preg-replace

我有一个字符串The Incredible Hulk(2008)并使用模式

/^\([0-9]{1,4}\)$/

删除(2008)。 PHP代码如下所示:

$x = trim(preg_replace("/^\([0-9]{1,4}\)$/", "", "The Incredible Hulk (2008)"));

结果是:

The Incredible Hulk (2008)

我做错了什么?

5 个答案:

答案 0 :(得分:4)

您正在使用匹配行首的^字符。删除它,它应该工作。

如果您还希望在(正则表达式变为/\s*\([0-9]{1,4}\)$/之前删除空白

答案 1 :(得分:2)

取出“^”。

$x = trim(preg_replace("/\([0-9]{1,4}\)$/", "", "The Incredible Hulk (2008)"));

(2008)并未锚定在字符串的开头。 “^”要求匹配从一行的开头开始。

答案 2 :(得分:1)

^$标记整个字符串的开头和结尾。删除两者。

$x = trim(preg_replace("/\([0-9]{4}\)/", "", "The Incredible Hulk (2008)"));

答案 3 :(得分:1)

只需删除^符号(行首)。

$x = trim(preg_replace("/\([0-9]{1,4}\)$/", "", "The Incredible Hulk (2008)"));

(您可能还想删除$符号(行尾))

有关文档中PHP元字符的更多信息: http://www.php.net/manual/en/regexp.reference.meta.php

答案 4 :(得分:0)

$result = preg_replace('/\([\d]{4}\)$/', '', 'The Incredible Hulk (2008)');