preg_replace regex if else

时间:2012-12-11 08:55:52

标签: php regex

我们假设我使用以下php函数:

 preg_replace($search, $replace, $str);

我只能修改搜索并替换var。是否可以进行以下替换:

test -> test test2

并且

test 3 -> test3

我尝试了以下内容:

$search = '/test (?=*)/';
$replace = 'test($1)';

这适用于第二种情况。但是现在我想使用if,为了说“如果$ 1是空的,添加test2。但是我只能修改搜索并替换var而不使用额外的php。这是否可以在正则表达式中使用?

2 个答案:

答案 0 :(得分:2)

您可以将搜索和替换参数作为数组传递。因此,将一组搜索查询传递给search参数,并在replace参数...

中传递相应的替换字符串数组

所以,您可以尝试:

$search = array('/test(\s?)$/','/test (?=*)/');
$replace = array('test test2','test($1)');
preg_replace($search, $replace, $str);

答案 1 :(得分:0)

我认为你的任务不应该使用正则表达式。对于这种情况,您可以使用str_replace和两个数组 - 用于搜索和更改

$str = str_replace(array("test", "test 3"), array("test test2", "test3"), $str);