2011-08-18 125 views
0

我有一个字符串不可思议的绿巨人(2008年)和使用模式preg_replace函数的问题

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

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

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

,其结果是:

The Incredible Hulk (2008) 

我在做什么错?

回答

4

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

如果你也想摆脱空白的(前的正则表达式变得/\s*\([0-9]{1,4}\)$/

2

取出“^”。

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

(2008)没有固定在字符串的开头。 “^”要求匹配从一行的开始处开始。

1

^$是标记整个字符串的开始和结束。删除两个。

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