我想在两个字符之间替换一组字符串,例如&
和[]
以及其他值。例如,我的字符串就像&yyyyyyy[]=&gggggg[]=&bbbbb[]=
。现在我想用“name”替换&
和[]
之间的字符串,使其看起来像&name[]=&name[]=&name[]=
。现在该怎么做?
答案 0 :(得分:3)
$string = '&yyyyyyy[]=&gggggg[]=&bbbbb[]=';
$result = preg_replace('/&([a-zA-Z0-9]+)\[\]/', '&name[]', $string);
// Outputs: &name[]=&name[]=&name[]=
答案 1 :(得分:0)
preg_replace('/&([a-zA-Z0-9]+)\[\]/', '&name[]', "&yyyyyyy[]=&gggggg[]=&bbbbb[]=");
答案 2 :(得分:0)
这样的事情应该这样做..
使用preg_replace
或preg_replace_callback
\&(.*?)\[]
这应匹配字符和字母之间的字符串;和字符[]
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" } }
这个正则表达式是我能得到的最接近的。希望能帮助到你。
答案 3 :(得分:0)
这应该做你想要的,并且应该匹配&和[]不是&,[]或=
$subject = '&yyyyyyy[]=&gggggg[]=&bbbbb[]=';
$pattern = '/&([^\[\]\&=]+)\[\]/';
$replacement = '&name[]';
echo preg_replace($pattern, $replacement, $subject, -1);