我有一个字符串:"[a,b] some text [b,a] and some more"
我还有一个名为$c
的值,如果该值等于1
,则需要显示如下字符串:
"a some text b and some more"
(选择[x,y](x)的第一部分)
我尝试使用str_replace
来做到这一点,但这似乎不起作用。
您能提供一个解决方案吗?
答案 0 :(得分:1)
您可以使用$c
变量来更改对preg_replace
的调用的替换字符串,例如:
$string = "[a,b] some text [b,a] and some more";
$c = 1;
echo preg_replace('/\[([^,]+),([^]]+)\]/', $c ? '$1' : '$2', $string) . "\n";
$c = 0;
echo preg_replace('/\[([^,]+),([^]]+)\]/', $c ? '$1' : '$2', $string) . "\n";
正则表达式查找[
,后跟一定数量的非,
字符(组1),,
,然后再寻找一定数量的非]
字符(第2组)和一个]
。取决于$c
的值,将匹配的文本替换为第1组或第2组。
输出:
a some text b and some more
b some text a and some more
答案 1 :(得分:0)
我对一个theard中的子字符串做了处理,您也可以在您的情况下使用此解决方案。