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