我有一个字符串输入,我想检查这个字符串是否包含if语句的正确语法。并提取它的每一部分。
字符串格式:
if(D1[Condition]D2)str1:str2
" 如果"不应该是区分大小写的
D1 而 D2 应为数字
条件应为以下之一> < > =< = ==!=
字符串示例:
$example = "if(54>52)14:0";
$example = "If(54==52)dsfd:fsde";
我使用了这个正则表达式,但我不擅长使用正则表达式而且我不知道它是否好。
if\(\d+(==|<=|>=|>|<|!=)\d+\).+:.+
我想提取D1,D2,Condition,str1,str2
答案 0 :(得分:1)
答案 1 :(得分:1)
这个正则表达式应该有效:
/^if\(\d+([<>=!]=|[<>])\d+\).{1,50}:.{1,50}$/i
这不敏感地匹配if(
,然后是数字,然后是任何或您的运算符,然后是数字,然后是)
,然后是最多50个字符的字符串,然后是:
,然后是一串最多50个字符。
答案 2 :(得分:1)
在这里,你有
/^If\s*\((\d+)\s*(==|<=|>=|>|<|\!=)\s*(\d+)\)\s*(\w{1,50})\:(\w{1,50})$/i
https://regex101.com/r/jR0bO1/1
我已经在某些地方添加了可选空格,您可以在其他括号之前和之后添加更多空格。 \ w不允许字符串中的空格。你可以用它们替换它们。允许任何你想要的东西