Python 验证用户输入的不等式的正则表达式
我寻找答案,但找不到明确的答案。请容忍我,因为我在regex是一个不折不扣的人,这也是我的第一个问题。我正在使用Python3,但Javascript也需要它 我要做的是验证用户的输入。输入是一个不等式(去掉空格),变量由用户命名并预先给定。 例如,假设我有一个不等式: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)*)+)
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)*)*