数学正则表达式表达
答
您可以在+
或-
上分割,其前面有一个字母,数字和可能在您的表达式中可接受的其他元素(例如括号)。您可以使用look-behind来完成此操作。
例如在Python,你可以做这样的:
>>> import re
>>> re.split('(?<=[a-zA-Z0-9)])[+-]', '-a+10*x-2*y+(-2)-b')
['-a', '10*x', '2*y', '(-2)', 'b']
这分裂每个+
或-
不小的或资本字母或数字或一个右括号前面。您可能需要根据您对“数学表达式”构成的确切规范来调整。
这个或类似的正则表达式应该在其他正则表达式引擎中工作。
答
如果你一直各执+
,并且只在-
分裂,如果它不是在表达式的开头或跟随着g a'+'(和空格)?
答
数学表达式是解析器的经典应用程序。
正则表达式不足以完成正确的工作。即使您可以滥用正则表达式库中的高级功能来强制适用解决方案,结果可能会有些毛病。
这就是我需要的,非常感谢亚当! – Tony 2011-12-18 16:22:54