怎么注册网站免费的吗,高效网站建设公司,wordpress加密插件,怎么做刷东西网站文章目录 四则运算的正则校验带有变量的四则运算的正则校验带有括号的四则运算的正则校验变量使用${}包裹的四则运算正则表达式变量使用${}包裹的可以有括号的四则运算正则表达式变量使用#{}包裹的可以有括号的四则运算正则表达式变量使用${}或者 #{}包裹的可以有括号的四则运算… 文章目录 四则运算的正则校验带有变量的四则运算的正则校验带有括号的四则运算的正则校验变量使用${}包裹的四则运算正则表达式变量使用${}包裹的可以有括号的四则运算正则表达式变量使用#{}包裹的可以有括号的四则运算正则表达式变量使用${}或者 #{}包裹的可以有括号的四则运算正则表达式变量支持数字、字母和-_ 使用${}或者 #{}包裹的可以有括号的四则运算正则表达式变量支持大小写字母数字和特殊字符_?#()\.,%!- 使用${}或者 #{}包裹的可以有括号的四则运算正则表达式变量支持大小写字母数字和特殊字符 使用${}或者 #{}包裹的可以有括号的四则运算正则表达式 场景我们选取变量变量使用${} 或者#{}包裹起来然后可以四则运算±*/和括号需要校验正确性 (${ACinterU} ${ACTdisV1bh}) ${ALMfdPD} #{IndustrialInternetLogo}*4 - 1四则运算的正则校验
以下是一个简单的四则运算正则校验表达式
/^\d(\.\d)?[\\-\*\/]\d(\.\d)?$/解释
^ 表示匹配字符串的开头。 \d 表示匹配一个或多个数字。 (.\d)? 表示匹配一个小数点和一个或多个数字这部分内容可以出现零次或一次。 [-*/] 表示匹配加号、减号、乘号或除号。 $ 表示匹配字符串的结尾。 这个正则表达式可以匹配类似于以下格式的字符串
12 3.14-2.7 10*5.2 100/20.5 需要注意的是这个正则表达式只能校验基本的四则运算格式不能校验运算的正确性。例如1/0 这样的除零运算也可以通过正则校验。
带有变量的四则运算的正则校验
正则表达式无法直接校验带有变量的四则运算表达式因为变量的名称和取值是不确定的无法用固定的模式匹配。
如果需要校验带有变量的四则运算表达式可以考虑先将变量替换成一个占位符比如 x然后再进行正则校验。具体步骤如下
将变量替换成一个占位符比如 x。 例如将表达式 a b * 2 - c / d 替换成 x x * 2 - x / x。
使用正则表达式校验替换后的表达式。 例如使用上面提到的正则表达式 /^\d(.\d)?[-*/]\d(.\d)?$/ 进行校验。
如果替换后的表达式通过了正则校验再将占位符替换回原来的变量名称。 例如将 x x * 2 - x / x 替换回 a b * 2 - c / d。
需要注意的是这种方法只能校验变量名称是否合法不能校验变量的取值是否合法。如果需要校验变量的取值是否合法需要使用编程语言的语法分析功能。
带有括号的四则运算的正则校验
正则表达式可以校验带有括号的四则运算表达式以下是一个简单的正则表达式
/^(\d(\.\d)?|\([^\(\)]\))(\s*[\\-\*\/]\s*(\d(\.\d)?|\([^\(\)]\)))*$/该正则表达式可以匹配以下类型的表达式
12 3.14 - 2.7 * (5 2) (10 - 5) * 2 5 / (2 1) - 1 正则表达式的含义
^ 表示匹配字符串的开头。 ( 表示开始一个分组。 \d(.\d)? 表示匹配一个或多个数字和一个可选的小数点和一个或多个数字。 | 表示或者。 ([^()]) 表示匹配一个左括号、一个或多个非括号字符、一个右括号。 ) 表示结束一个分组。 (\s*[-*/]\s*(\d(.\d)?|([^()])))* 表示匹配一个或多个空格、一个加号、减号、乘号或除号、一个或多个空格、一个数字或括号表达式。 $ 表示匹配字符串的结尾。 需要注意的是这个正则表达式只能校验基本的四则运算格式不能校验运算的正确性。例如1/0 这样的除零运算也可以通过正则校验。
变量使用${}包裹的四则运算正则表达式
以下是一个变量使用${}包裹的四则运算正则表达式
/^\s*\${[a-zA-Z]\s*}(\s*[\\-\*\/]\s*\${[a-zA-Z]\s*})*(\s*[\\-\*\/]\s*\d(\.\d)?)*\s*$/解释
^ 表示匹配字符串的开头。 \s* 表示匹配零个或多个空格。 ${[a-zA-Z]\s*} 表示匹配一个变量变量的格式为${变量名}。 (\s*[-*/]\s*${[a-zA-Z]\s*})* 表示匹配一个加号、减号、乘号或除号后面跟着一个变量和零个或多个空格的组合这部分内容可以出现零次或多次。 (\s*[-*/]\s*\d(.\d)?)* 表示匹配一个加号、减号、乘号或除号后面跟着一个数字和零个或多个空格的组合这部分内容可以出现零次或多次。 $ 表示匹配字符串的结尾。 这个正则表达式可以匹配类似于以下格式的字符串
${a} ${b} * 2 - ${c} / ${d}
${foo} - ${bar} * 5.5 ${baz} / 6需要注意的是这个正则表达式只能校验变量和数字的基本格式不能校验运算的正确性。例如1/0 这样的除零运算也可以通过正则校验。同时该正则表达式只支持${}格式的变量不支持其他格式的变量。如果需要支持其他格式的变量建议使用编程语言的语法分析功能。
变量使用${}包裹的可以有括号的四则运算正则表达式
以下是一个变量使用${}包裹的可以有括号的四则运算正则表达式
/^\s*(\${[a-zA-Z]\s*}|\(\s*[\\-\*\/]?\s*(\${[a-zA-Z]\s*}|\d(\.\d)?|\(\s*[\\-\*\/]?\s*(\${[a-zA-Z]\s*}|\d(\.\d)?)\s*\)\s*)\s*\))(\s*[\\-\*\/]\s*(\${[a-zA-Z]\s*}|\d(\.\d)?|\(\s*[\\-\*\/]?\s*(\${[a-zA-Z]\s*}|\d(\.\d)?)\s*\)))*\s*$/解释
^ 表示匹配字符串的开头。 \s* 表示匹配零个或多个空格。 (${[a-zA-Z]\s*}|(\s*[-*/]?\s*(${[a-zA-Z]\s*}|\d(.\d)?|(\s*[-*/]?\s*(${[a-zA-Z]\s*}|\d(.\d)?)\s*)\s*)\s*)) 表示匹配一个变量或括号内的四则运算表达式变量的格式为${变量名}。 (\s*[-*/]\s*(${[a-zA-Z]\s*}|\d(.\d)?|(\s*[-*/]?\s*(${[a-zA-Z]\s*}|\d(.\d)?)\s*)))* 表示匹配一个加号、减号、乘号或除号后面跟着一个变量或数字或括号内的四则运算表达式和零个或多个空格的组合这部分内容可以出现零次或多次。 $ 表示匹配字符串的结尾。 这个正则表达式可以匹配类似于以下格式的字符串 a ( {a} ( a({b} * 2) - (${c} / ${d}) f o o − ( {foo} - ( foo−({bar} * 5.5 ${baz}) / (6 q u x ) 需要注意的是这个正则表达式只能校验变量和数字的基本格式不能校验运算的正确性。例如 1 / 0 这样的除零运算也可以通过正则校验。同时该正则表达式只支持 {qux}) 需要注意的是这个正则表达式只能校验变量和数字的基本格式不能校验运算的正确性。例如1/0 这样的除零运算也可以通过正则校验。同时该正则表达式只支持 qux)需要注意的是这个正则表达式只能校验变量和数字的基本格式不能校验运算的正确性。例如1/0这样的除零运算也可以通过正则校验。同时该正则表达式只支持{}格式的变量不支持其他格式的变量。如果需要支持其他格式的变量建议使用编程语言的语法分析功能。
变量使用#{}包裹的可以有括号的四则运算正则表达式
以下是一个变量使用#{}包裹的可以有括号的四则运算正则表达式
/^\s*(#\{[a-zA-Z]\s*\}|\(\s*[\\-\*\/]?\s*(#\{[a-zA-Z]\s*\}|\d(\.\d)?|\(\s*[\\-\*\/]?\s*(#\{[a-zA-Z]\s*\}|\d(\.\d)?)\s*\)\s*)\s*\))(\s*[\\-\*\/]\s*(#\{[a-zA-Z]\s*\}|\d(\.\d)?|\(\s*[\\-\*\/]?\s*(#\{[a-zA-Z]\s*\}|\d(\.\d)?)\s*\)))*\s*$/解释
^ 表示匹配字符串的开头。 \s* 表示匹配零个或多个空格。 (#{[a-zA-Z]\s*}|(\s*[-*/]?\s*(#{[a-zA-Z]\s*}|\d(.\d)?|(\s*[-*/]?\s*(#{[a-zA-Z]\s*}|\d(.\d)?)\s*)\s*)\s*)) 表示匹配一个变量或括号内的四则运算表达式变量的格式为#{变量名}。 (\s*[-*/]\s*(#{[a-zA-Z]\s*}|\d(.\d)?|(\s*[-*/]?\s*(#{[a-zA-Z]\s*}|\d(.\d)?)\s*)))* 表示匹配一个加号、减号、乘号或除号后面跟着一个变量或数字或括号内的四则运算表达式和零个或多个空格的组合这部分内容可以出现零次或多次。 $ 表示匹配字符串的结尾。 这个正则表达式可以匹配类似于以下格式的字符串
#{a} (#{b} * 2) - (#{c} / #{d}) #{foo} - (#{bar} * 5.5 #{baz}) / (6 #{qux}) 需要注意的是这个正则表达式只能校验变量和数字的基本格式不能校验运算的正确性。例如1/0 这样的除零运算也可以通过正则校验。同时该正则表达式只支持#{}格式的变量不支持其他格式的变量。如果需要支持其他格式的变量建议使用编程语言的语法分析功能。
变量使用${}或者 #{}包裹的可以有括号的四则运算正则表达式
以下是一个变量使用${}或者#{}包裹的可以有括号的四则运算正则表达式
/^\s*((\${[a-zA-Z]\s*}|\#\{[a-zA-Z]\s*\})|\(\s*[\\-\*\/]?\s*((\${[a-zA-Z]\s*}|\#\{[a-zA-Z]\s*\})|\d(\.\d)?|\(\s*[\\-\*\/]?\s*((\${[a-zA-Z]\s*}|\#\{[a-zA-Z]\s*\})|\d(\.\d)?)\s*\)\s*)\s*\))(\s*[\\-\*\/]\s*((\${[a-zA-Z]\s*}|\#\{[a-zA-Z]\s*\})|\d(\.\d)?|\(\s*[\\-\*\/]?\s*((\${[a-zA-Z]\s*}|\#\{[a-zA-Z]\s*\})|\d(\.\d)?)\s*\)))*\s*$/解释
^ 表示匹配字符串的开头。 \s* 表示匹配零个或多个空格。 ((${[a-zA-Z]\s*}|#{[a-zA-Z]\s*})|(\s*[-*/]?\s*((${[a-zA-Z]\s*}|#{[a-zA-Z]\s*})|\d(.\d)?|(\s*[-*/]?\s*((${[a-zA-Z]\s*}|#{[a-zA-Z]\s*})|\d(.\d)?)\s*)\s*)\s*)) 表示匹配一个变量或括号内的四则运算表达式变量的格式为${变量名}或#{变量名}。 (\s*[-*/]\s*((${[a-zA-Z]\s*}|#{[a-zA-Z]\s*})|\d(.\d)?|(\s*[-*/]?\s*((${[a-zA-Z]\s*}|#{[a-zA-Z]\s*})|\d(.\d)?)\s*)))* 表示匹配一个加号、减号、乘号或除号后面跟着一个变量或数字或括号内的四则运算表达式和零个或多个空格的组合这部分内容可以出现零次或多次。 $ 表示匹配字符串的结尾。 这个正则表达式可以匹配类似于以下格式的字符串
KaTeX parse error: Expected EOF, got # at position 8: {a} (#̲{b} * 2) - ({c} / #{d}) #{foo} - (${bar} * 5.5 KaTeX parse error: Expected EOF, got # at position 15: {baz}) / (6 #̲{qux}) 需要注意的是这…{}和#{}格式的变量如果需要只支持其中一种格式可以将正则表达式中对应的部分删除。如果需要支持其他格式的变量建议使用编程语言的语法分析功能。
变量支持数字、字母和-_ 使用${}或者 #{}包裹的可以有括号的四则运算正则表达式
以下是一个变量支持数字、字母和-_使用${}或者#{}包裹的可以有括号的四则运算正则表达式
/^\s*((\${[a-zA-Z0-9\-_]\s*}|\#\{[a-zA-Z0-9\-_]\s*\})|\(\s*[\\-\*\/]?\s*((\${[a-zA-Z0-9\-_]\s*}|\#\{[a-zA-Z0-9\-_]\s*\})|\d(\.\d)?|\(\s*[\\-\*\/]?\s*((\${[a-zA-Z0-9\-_]\s*}|\#\{[a-zA-Z0-9\-_]\s*\})|\d(\.\d)?)\s*\)\s*)\s*\))(\s*[\\-\*\/]\s*((\${[a-zA-Z0-9\-_]\s*}|\#\{[a-zA-Z0-9\-_]\s*\})|\d(\.\d)?|\(\s*[\\-\*\/]?\s*((\${[a-zA-Z0-9\-_]\s*}|\#\{[a-zA-Z0-9\-_]\s*\})|\d(\.\d)?)\s*\)))*\s*$/解释
^ 表示匹配字符串的开头。 \s* 表示匹配零个或多个空格。 ((${[a-zA-Z0-9-]\s*}|#{[a-zA-Z0-9-]\s*})|(\s*[-*/]?\s*((${[a-zA-Z0-9-]\s*}|#{[a-zA-Z0-9-]\s*})|\d(.\d)?|(\s*[-*/]?\s*((${[a-zA-Z0-9-]\s*}|#{[a-zA-Z0-9-]\s*})|\d(.\d)?)\s*)\s*)\s*)) 表示匹配一个变量或括号内的四则运算表达式变量的格式为${变量名}或#{变量名}变量名可以包含数字、字母和-。 (\s*[-*/]\s*((${[a-zA-Z0-9-]\s*}|#{[a-zA-Z0-9-]\s*})|\d(.\d)?|(\s*[-*/]?\s*((${[a-zA-Z0-9-]\s*}|#{[a-zA-Z0-9-_]\s*})|\d(.\d)?)\s*)))* 表示匹配一个加号、减号、乘号或除号后面跟着一个变量或数字或括号内的四则运算表达式和零个或多个空格的组合这部分内容可以出现零次或多次。 $ 表示匹配字符串的结尾。 这个正则表达式可以匹配类似于以下格式的字符串
KaTeX parse error: Expected EOF, got # at position 12: {a_1-2} (#̲{b-3} * 2) - ({c_4} / #{d_5}) #{foo} - (${bar} * 5.5 KaTeX parse error: Expected EOF, got # at position 19: …z_6-7}) / (6 #̲{qux_8}) 需要注意的是…{}和#{}格式的变量如果需要只支持其中一种格式可以将正则表达式中对应的部分删除。如果需要支持其他格式的变量建议使用编程语言的语法分析功能。
变量支持大小写字母数字和特殊字符_?#().,%!- 使用${}或者 #{}包裹的可以有括号的四则运算正则表达式
以下是一个变量支持大小写字母、数字和特殊字符_?#().,%!-使用${}或者#{}包裹的可以有括号的四则运算正则表达式
/^\s*((\${[a-zA-Z0-9_?#()\.,%!\-]}|\#\{[a-zA-Z0-9_?#()\.,%!\-]\})|\(\s*[\\-\*\/]?\s*((\${[a-zA-Z0-9_?#()\.,%!\-]}|\#\{[a-zA-Z0-9_?#()\.,%!\-]\})|\d(\.\d)?|\(\s*[\\-\*\/]?\s*((\${[a-zA-Z0-9_?#()\.,%!\-]}|\#\{[a-zA-Z0-9_?#()\.,%!\-]\})|\d(\.\d)?)\s*\)\s*)\s*\))(\s*[\\-\*\/]\s*((\${[a-zA-Z0-9_?#()\.,%!\-]}|\#\{[a-zA-Z0-9_?#()\.,%!\-]\})|\d(\.\d)?|\(\s*[\\-\*\/]?\s*((\${[a-zA-Z0-9_?#()\.,%!\-]}|\#\{[a-zA-Z0-9_?#()\.,%!\-]\})|\d(\.\d)?)\s*\)))*\s*$/解释
^ 表示匹配字符串的开头。 \s* 表示匹配零个或多个空格。 (${[a-zA-Z0-9_?‘#().,%!-]}|#{[a-zA-Z0-9_?’#().,%!-]}) 表示匹配一个变量变量的格式为${变量名}或#{变量名}变量名可以包含大小写字母、数字和特殊字符_?‘#().,%!-。 (\s*[-*/]\s*((${[a-zA-Z0-9_?’#().,%!-]}|#{[a-zA-Z0-9_?‘#().,%!-]})|\d(.\d)?|(\s*[-*/]?\s*((${[a-zA-Z0-9_?’#().,%!-]}|#{[a-zA-Z0-9_?#().,%!-]})|\d(.\d)?)\s*)\s*)\s*)) 表示匹配一个加号、减号、乘号或除号后面跟着一个变量或数字或括号内的四则运算表达式和零个或多个空格的组合这部分内容可以出现零次或多次。 $ 表示匹配字符串的结尾。 这个正则表达式可以匹配类似于以下格式的字符串
KaTeX parse error: Expected EOF, got # at position 11: {a_1-2} #̲{b-3} * 2 - ({c_4} / #{d_5}) #{foo} - (${bar} * 5.5 KaTeX parse error: Expected EOF, got # at position 19: …z_6-7}) / (6 #̲{qux_8}) 需要注意的是…{}和#{}格式的变量如果需要只支持其中一种格式可以将正则表达式中对应的部分删除。如果需要支持其他格式的变量建议使用编程语言的语法分析功能。
变量支持大小写字母数字和特殊字符 使用${}或者 #{}包裹的可以有括号的四则运算正则表达式
以下是一个变量支持大小写字母、数字和特殊字符使用${}或者#{}包裹的可以有括号的四则运算正则表达式
/^\s*((\${[a-zA-Z0-9\-_#$%^*()]\s*}|\#\{[a-zA-Z0-9\-_#$%^*()]\s*\})|\(\s*[\\-\*\/]?\s*((\${[a-zA-Z0-9\-_#$%^*()]\s*}|\#\{[a-zA-Z0-9\-_#$%^*()]\s*\})|\d(\.\d)?|\(\s*[\\-\*\/]?\s*((\${[a-zA-Z0-9\-_#$%^*()]\s*}|\#\{[a-zA-Z0-9\-_#$%^*()]\s*\})|\d(\.\d)?)\s*\)\s*)\s*\))(\s*[\\-\*\/]\s*((\${[a-zA-Z0-9\-_#$%^*()]\s*}|\#\{[a-zA-Z0-9\-_#$%^*()]\s*\})|\d(\.\d)?|\(\s*[\\-\*\/]?\s*((\${[a-zA-Z0-9\-_#$%^*()]\s*}|\#\{[a-zA-Z0-9\-_#$%^*()]\s*\})|\d(\.\d)?)\s*\)))*\s*$/解释
^ 表示匹配字符串的开头。 \s* 表示匹配零个或多个空格。 (${[a-zA-Z0-9-# %^*()]\s*}|\#\{[a-zA-Z0-9\-_# %^()]\s}) 表示匹配一个变量变量的格式为${变量名}或#{变量名}变量名可以包含大小写字母、数字和特殊字符- _ # $ % ^ * ( )。 (\s*[-*/]\s*((${[a-zA-Z0-9-# %^*()]\s*}|\#\{[a-zA-Z0-9\-_# %*()]\s*})|\d(.\d)?|(\s*[-*/]?\s*((${[a-zA-Z0-9-_#$%^*()]\s*}|#{[a-zA-Z0-9-_#$%()]\s})|\d(.\d)?)\s*)\s*)\s*)) 表示匹配一个加号、减号、乘号或除号后面跟着一个变量或数字或括号内的四则运算表达式和零个或多个空格的组合这部分内容可以出现零次或多次。 $ 表示匹配字符串的结尾。 注gpt