我需要替换这些特定字符之后和之前的所有整数:( ) * - / % + space
,但不能超过这些。
所以(34 +
应该匹配,而a34 +
或k3-
不应该匹配。
我有这个到目前为止,'/(?:-| |'(|')|'+|'*|'/|%)('d+)(?:-| |'(|')|'+|'*|'/|%)/'
,但这不是像我想要的那样工作。
$pattern = '/[- ()+*'/%]('d+)[- ()+*'/%]/';
$replacement = "xyz($1)";
$insideFunc = preg_replace($pattern, $replacement, $insideFunc);
$insideFunc = "float y = 45*(3-max(3-float(ceil(3)), 3-float(floor(3))))*2.302585092994046"
output -> float y =xyz(45)xyz(3)maxxyz(3)float(ceilxyz(3)),xyz(3)float(floorxyz(3))))*2.302585092994046
我希望它是,float y = xyz(45)*(xyz(3)-max(xyz(3)-float(ceil(xyz(3))), xyz(3)-float(floor(xyz(3)))))*2.302585092994046
我把它改成那样,现在它可以工作了。
$pattern = '/([- ()+*'/%])('d+)([- ()+*'/%])/';
$replacement = "$1float($2)$3";