我想用其他值替换两个字符之间的字符串&
集[]
。例如,我的字符串就像&yyyyyyy[]=&gggggg[]=&bbbbb[]=
. 现在我想用“name”替换和之间的字符串&
,[]
使它看起来像&name[]=&name[]=&name[]=
. 现在该怎么做?
问问题
2513 次
4 回答
3
$string = '&yyyyyyy[]=&gggggg[]=&bbbbb[]=';
$result = preg_replace('/&([a-zA-Z0-9]+)\[\]/', '&name[]', $string);
// Outputs: &name[]=&name[]=&name[]=
于 2013-05-17T14:27:14.493 回答
0
preg_replace('/&([a-zA-Z0-9]+)\[\]/', '&name[]', "&yyyyyyy[]=&gggggg[]=&bbbbb[]=");
于 2013-05-17T14:35:42.620 回答
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" } }
这个正则表达式是我能得到的最接近的。希望能帮助到你。
于 2013-05-17T14:41:11.780 回答
0
这应该做你想做的事情,并且应该匹配 & 和 [] 之间不是 &、[] 或 = 的任何内容
$subject = '&yyyyyyy[]=&gggggg[]=&bbbbb[]=';
$pattern = '/&([^\[\]\&=]+)\[\]/';
$replacement = '&name[]';
echo preg_replace($pattern, $replacement, $subject, -1);
于 2013-05-17T14:46:01.517 回答