我想检查一下字符串是否具有用于计算的任何操作,例如:
$str = "part1+part2"
检查 $ str 是否包含以下任意字符: + ,-, / 或 *
然后将字符串的每个部分分配给一个变量
$p1 = "part1";
$p2 = "part2";
$opr = "+";
答案 0 :(得分:-1)
这是一个可以使用的正则表达式。我也已经完成了实际的计算,您可能需要也可能不需要。
正则表达式会在+-/或*之前查找任何内容,并将其称为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