1

私は2つの文字の間の文字列のセットを他の値に置き換えたいと思ってい&ます。[]たとえば、私の文字列は次のようになり&yyyyyyy[]=&gggggg[]=&bbbbb[]=ます。&との間の文字列を "name" に置き換えて、 の[]ようにし&name[]=&name[]=&name[]=ます。今それを行う方法は?

4

4 に答える 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

これはあなたが望むことをし、&、[]、または = 以外の & と [] の間のすべてに一致する必要があります。

$subject = '&yyyyyyy[]=&gggggg[]=&bbbbb[]=';    
$pattern = '/&([^\[\]\&=]+)\[\]/';
$replacement = '&name[]';
echo preg_replace($pattern, $replacement, $subject, -1);
于 2013-05-17T14:46:01.517 に答える
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
preg_replace('/&([a-zA-Z0-9]+)\[\]/', '&name[]', "&yyyyyyy[]=&gggggg[]=&bbbbb[]=");
于 2013-05-17T14:35:42.620 に答える