我有一个字符串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)
我做错了什么?
答案 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)');