Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 验证用户输入的不等式的正则表达式_Python_Regex - Fatal编程技术网

Python 验证用户输入的不等式的正则表达式

Python 验证用户输入的不等式的正则表达式,python,regex,Python,Regex,我寻找答案,但找不到明确的答案。请容忍我,因为我在regex是一个不折不扣的人,这也是我的第一个问题。我正在使用Python3,但Javascript也需要它 我要做的是验证用户的输入。输入是一个不等式(去掉空格),变量由用户命名并预先给定。 例如,假设我有一个不等式: x+y+6p<=z+1 x+y+6p试试这个模式 (^(?=.)(?:(?:[+-]?\d*(?:xp|yp|p|z)*)+)[<>]=(?=.)(?:(?:[+-]?\d*(?:xp|yp|p|z)*)+)

我寻找答案,但找不到明确的答案。请容忍我,因为我在regex是一个不折不扣的人,这也是我的第一个问题。我正在使用Python3,但Javascript也需要它

我要做的是验证用户的输入。输入是一个不等式(去掉空格),变量由用户命名并预先给定。 例如,假设我有一个不等式:

x+y+6p<=z+1
x+y+6p试试这个模式

(^(?=.)(?:(?:[+-]?\d*(?:xp|yp|p|z)*)+)[<>]=(?=.)(?:(?:[+-]?\d*(?:xp|yp|p|z)*)+)$)  
(^(?=)(?:(?:[+-]?\d*(?:xp | yp | p | z)*+)[=(?:(?:[+-]?\d*(?:xp | yp | p | z)*+)$)

[0-9]*(xp | yp | p | z)*([+-][0-9]*(xp | yp | p | z)**(xp | yp | p | z)*([+-][0-9]*(xp yp p | p | p | z)*)*

这很难看,不会出现像
1++xCan这样的错误。我们可以假设数字总是在变量前面,或者它们可以在任意一边吗?同样是
p6,您是否需要这一个正则表达式来检查语法是否正确,比如箭头中没有两个+,或者只检查所使用的变量。我强烈建议不要使用正则表达式!这个问题应该有帮助:是的,亚历杭德罗,他们可以在双方,所以p6和6p6都是有效的。我同意@Greg的观点,它不会有效率。我认为有一个简单的方法可以用正则表达式来实现这一点。我会尝试解析。谢谢你们两位的建议。
^([\+\-]?[0-9]*([xpypz]|[0-9]+))+[<>]=([\+\-]?[0-9]*([xpypz]|[0-9]+))+$
(^(?=.)(?:(?:[+-]?\d*(?:xp|yp|p|z)*)+)[<>]=(?=.)(?:(?:[+-]?\d*(?:xp|yp|p|z)*)+)$)  
[0-9]*(xp|yp|p|z)*([+-][0-9]*(xp|yp|p|z)*)*(<|>|<=|>=)[0-9]*(xp|yp|p|z)*([+-][0-9]*(xp|yp|p|z)*)*