Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 替换动态字符串的多个匹配项_Php_Regex_Preg Replace - Fatal编程技术网

Php 替换动态字符串的多个匹配项

Php 替换动态字符串的多个匹配项,php,regex,preg-replace,Php,Regex,Preg Replace,我将说明我正在做的代码: 我有包含字符串的数据,例如: [[-55-]], [[-75-]] 我用它来做一些事情,比如: $var = 'hi my name is [[-55-]] and I think yoda looks like a bald green [[-75-]].'; $var = str_replace('[[-', '<img src="/', $var); $var = str_replace('-]], '">', $var); <a href=

我将说明我正在做的代码:

我有包含字符串的数据,例如:

[[-55-]], [[-75-]]
我用它来做一些事情,比如:

$var = 'hi my name is [[-55-]] and I think yoda looks like a bald green [[-75-]].';
$var = str_replace('[[-', '<img src="/', $var);
$var = str_replace('-]], '">', $var);
<a href="/stuff/55/"><img src="/55.png"></a>
$var = 'hi my name is [[-55-]] and I think yoda looks like a bald green [[-75-]].';
$result = preg_replace('/\[\[-(\d+)-\]\]/', '<a href="/stuff/\1/"><img src="/\1.png"></a>', $var);
$var='嗨,我的名字是[-55-]],我觉得尤达看起来像一个秃顶的绿色[-75-]';
$var=str_replace(“[-”,“$var”);
我想做的是以图像输出结束,比如:

$var = 'hi my name is [[-55-]] and I think yoda looks like a bald green [[-75-]].';
$var = str_replace('[[-', '<img src="/', $var);
$var = str_replace('-]], '">', $var);
<a href="/stuff/55/"><img src="/55.png"></a>
$var = 'hi my name is [[-55-]] and I think yoda looks like a bald green [[-75-]].';
$result = preg_replace('/\[\[-(\d+)-\]\]/', '<a href="/stuff/\1/"><img src="/\1.png"></a>', $var);

问题是,这需要的不仅仅是一个简单的stru替换,我在regex的表现也非常糟糕

任何帮助都将不胜感激。

如:

$var = 'hi my name is [[-55-]] and I think yoda looks like a bald green [[-75-]].';
$var = str_replace('[[-', '<img src="/', $var);
$var = str_replace('-]], '">', $var);
<a href="/stuff/55/"><img src="/55.png"></a>
$var = 'hi my name is [[-55-]] and I think yoda looks like a bald green [[-75-]].';
$result = preg_replace('/\[\[-(\d+)-\]\]/', '<a href="/stuff/\1/"><img src="/\1.png"></a>', $var);
$var='嗨,我的名字是[-55-]],我觉得尤达看起来像一个秃顶的绿色[-75-]';
$result=preg\u replace('/\[\[-(\d+)-\]\]/',''.$var);

都由同一个delimeter分隔?如果是这样,请将“[-55-]”、[-75-]”读入$string,然后使用,分解(“,”,$string)并根据需要使用$array[55]、$array[75]。感谢您为我写下答案。;)唯一的区别是正则表达式应该是:
/\[\[-(\d+?)-\]\]/