regex — проверяет, содержит ли строка PHP символы операции

Я хочу проверить, есть ли в ядре какая-либо из операций для расчетов, например:

$str = "part1+part2"

Проверить, если $ ул содержит любой из этих символов: +, , /, или же *

Затем присвойте каждую часть укуса переменной

$p1 = "part1";
$p2 = "part2";
$opr = "+";

-3

Решение

Вот регулярное выражение, которое будет работать. Я также сделал фактический расчет, который вам может понадобиться или не понадобиться.

Регулярное выражение ищет что-либо перед + — / или * и вызывает его как var1, затем находит оператор и затем var2. Играть с регулярным выражением здесь https://regex101.com/r/fXw0cv/2

Проверь это:

<?php

$x = "50+60";
$regex = '#(?<val1>.*)(?<operator>[\+\-\/\*])(?<val2>.*)#';

preg_match( $regex, $x, $match);

if (count($match)) {
echo $match['val1'] . $match['operator'] . $match['val2'] .' = ';
switch ($match['operator']) {
case '+':
$result = $match['val1'] + $match['val2'];
break;
case '-':
$result = $match['val1'] - $match['val2'];
break;
case '/':
$result = $match['val1'] / $match['val2'];
break;
case '*':
$result = $match['val1'] * $match['val2'];
break;
}
echo $result;
}

Выход: 50 + 60 = 110 https://3v4l.org/LS2pB

-1

Другие решения

Других решений пока нет …