检查PHP字符串是否包含操作字符

时间:2018-10-11 11:47:42

标签: php regex string substring contains

我想检查一下字符串是否具有用于计算的任何操作,例如:

$str = "part1+part2"

检查 $ str 是否包含以下任意字符: + - / *

然后将字符串的每个部分分配给一个变量

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

1 个答案:

答案 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