1
function regexp($text){
   $text = preg_replace('#!test=#', '', $text);
   $text = preg_replace('#@test=#', '', $text);
   return $text;
}

我怎样才能合并这个正则表达式?他们只是不同!和 @。在我的例子中是错误的,这不起作用。我只想:

$a = 'asdf!test=wer';
$b = '232@test=dsf';

改成:

$a = 'asdfwer';
$b = '232dsf';

用正则表达式。

4

2 回答 2

4

像这样的东西应该同时匹配:#(!|@)test=#. 如果你会有更多的符号(除了!and @,用这样的东西代替它:(#[!@]test=#如@DCoder 所建议的那样)将产生一个更干净的正则表达式。

本质上|,正则表达式语言中的管道 () 表示一个OR. 所以本质上,我说的是匹配字符串test=,如果它以一个!或一个@符号为前缀。

于 2013-08-02T06:41:52.627 回答
0

尝试preg_replace使用带有替换数组的正则表达式数组,例如

$text = preg_replace(array('#!test=#' , '#@test=#'),array('' , ''), $text);
于 2013-08-02T06:40:43.467 回答