正则表达式匹配特定字符集之间的整数

时间:2016-09-18 02:37:04

标签: php regex

我需要在这些特定字符之前和之后替换所有整数:( ) * - / % + 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

1 个答案:

答案 0 :(得分:1)

我改变了它,它现在正在运作。

$pattern = '/([- ()+*\/%])(\d+)([- ()+*\/%])/';
$replacement = "$1float($2)$3";