Php 两个单词之间的Regex替换

Php 两个单词之间的Regex替换,php,regex,Php,Regex,我想用其他值替换两个字符之间的字符串集,如&和[]。例如,我的字符串类似于&yyyyyyyyy[]=&gggggg[]=&bbbbb[]=。现在我想用“name”替换&和[]之间的字符串,使其看起来像&name[]=&name[]=&name[]=。现在怎么做呢?像这样的东西就可以了 $string = '&yyyyyyy[]=&gggggg[]=&bbbbb[]='; $result = preg_replace('/&([a-zA-Z0-9]+)\[\]/',

我想用其他值替换两个字符之间的字符串集,如
&
[]
。例如,我的字符串类似于
&yyyyyyyyy[]=&gggggg[]=&bbbbb[]=
。现在我想用“name”替换
&
[]
之间的字符串,使其看起来像
&name[]=&name[]=&name[]=
。现在怎么做呢?

像这样的东西就可以了

$string = '&yyyyyyy[]=&gggggg[]=&bbbbb[]=';
$result = preg_replace('/&([a-zA-Z0-9]+)\[\]/', '&name[]', $string);

// Outputs: &name[]=&name[]=&name[]=
使用
preg\u replace
preg\u replace\u回调

\&(.*?)\[]
这应该匹配字符&和字符[]之间的字符串

preg_match_all('#\&(.*?)\[]#','&yyyyyyy[]=&gggggg[]=&bbbbb[]=',$matches);
array(2) { [0]=> array(3) { [0]=> string(10) "&yyyyyyy[]" [1]=> string(9) "&gggggg[]" [2]=> string(8) "&bbbbb[]" } 
           [1]=> array(3) { [0]=> string(7) "yyyyyyy" [1]=> string(6) "gggggg" [2]=> string(5) "bbbbb" } }

这个正则表达式是我能得到的最接近的。希望能有帮助

这应该满足您的需要,并且应该匹配&和[]之间的任何内容,而不是&、[]或=

$subject = '&yyyyyyy[]=&gggggg[]=&bbbbb[]=';    
$pattern = '/&([^\[\]\&=]+)\[\]/';
$replacement = '&name[]';
echo preg_replace($pattern, $replacement, $subject, -1);

preg\u替换

$subject = '&yyyyyyy[]=&gggggg[]=&bbbbb[]=';    
$pattern = '/&([^\[\]\&=]+)\[\]/';
$replacement = '&name[]';
echo preg_replace($pattern, $replacement, $subject, -1);