我需要使用PHP中的preg_replace替换括号中最后一次出现的任何内容

时间:2011-01-25 21:01:05

标签: php preg-replace

我需要在字符串末尾的括号中替换所有出现的内容。但我不希望发生在字符串内的任何事情。例如,如果我有一个字符串“Special(NOT)Value(SV)”,那么preg_replace应该只替换结束括号,因此结果应为“Special(NOT)Value”

3 个答案:

答案 0 :(得分:1)

您是否尝试过使用爆炸功能?您可以定义模式,然后可以连接数组...... http://php.net/manual/en/function.explode.php

答案 1 :(得分:0)

美元字符匹配字符串的结尾。下面的正则表达式应该做你想要的,除非你可以在括号内括号,在这种情况下你应该更准确地定义你期望获得答案的内容。 (现在我会让你了解你的第一次尝试发生了什么以及出了什么问题)

<?
$str = 'Special (NOT) Value (SV)';
$str = preg_replace('/[(][^)]*[)]([^(]*$)/', '$2', $str);
echo $str."\n";
?>

答案 2 :(得分:0)

如果查看the manual,您会看到可以使用$字符断言一行的结尾。因此,blah.*?$会在字符串中找到blah的最后一次出现。

这不是完整的答案,但应该足以让你前进。