-1
이러한 특정 문자 전후에있는 모든 정수를 바꿔야합니다 (() * -/% + space
).특정 문자 집합 사이의 정수를 일치시키는 정규식
따라서 (34 +
은 일치해야하지만 a34 +
또는 k3-
은 일치해야합니다.
나는 이걸 지금까지 가지고 있는데, '/(?:-| |\(|\)|\+|\*|\/|%)(\d+)(?:-| |\(|\)|\+|\*|\/|%)/'
하지만 이것은 내가 원하는대로 작동하지 않는다. 내가 원하는
output -> float y =xyz(45)xyz(3)maxxyz(3)float(ceilxyz(3)),xyz(3)float(floorxyz(3))))*2.302585092994046
$insideFunc = "float y = 45*(3-max(3-float(ceil(3)), 3-float(floor(3))))*2.302585092994046"
$pattern = '/[-()+*\/%](\d+)[-()+*\/%]/';
$replacement = "xyz($1)";
$insideFunc = preg_replace($pattern, $replacement, $insideFunc);
,
float y = xyz(45)*(xyz(3)-max(xyz(3)-float(ceil(xyz(3))), xyz(3)-float(floor(xyz(3)))))*2.302585092994046
문자 클래스를 대신 사용하십시오 :'[-() + * \/%] (\ d +) [-() + * \/%]'원하지 않는 것을 설명 할 수 있습니까? – 4castle