我收到了一堆像这样的字符串:
test; test2 (2;5%).
我现在要用PHP做的是纠正“;”在括号中所以它看起来像:
test; test2 (2,5%) - mention the ",".
我尝试过的代码:
$string = preg_replace("/\(.;.\)/", ",", $string);
我的眼睛实际上从谷歌搜索流出,所以请帮助我:)
答案 0 :(得分:6)
1)需要用反斜杠(\
)
2)未在表达式中包含百分号
3)本来会用一个,
4)正如Zimzat在评论中指出的那样,将句号(.
)替换为\d+
可能是一个更好的主意,$string = preg_replace("/\((\d+);(\d+%)\)/", "($1,$2)", $string);
匹配数字而不是任何字符。
{{1}}
答案 1 :(得分:0)
您必须捕获;
旁边的字符:
$string = preg_replace('/\((\d+);(\d+%)\)/', "($1,$2)", $string);
答案 2 :(得分:0)
在()中替换多个例如逗号的出现我将使用此代码
$text = preg_replace_callback("/\{((.*),(.*))\}/sim", function($matches){
return str_replace(',', ':comma:', $matches[0]);
}, $text);