我需要帮助编写一个reg ex或者更多的搜索字符串的东西。
首先,它搜索带有小数点或逗号的数字串(0到9),但小数点和逗号只能位于两个数字之间。两个小数点彼此相邻,或两个逗号,或逗号旁边的小数点,或小数点旁边的逗号。
然后,如果找到了,它会在同一个字符串中搜索数字0到9,打开括号,打开方括号或打开括号,并继续沿着它找到任何数字,任何括号,任何方格 - 括号,任何大括号,两个数字之间的任何逗号,两个数字之间的任何小数点,任何加号(+),减号( - ),星号(*)或正斜杠(/),以及它们之间的空格。它停在最后一个空格,括号括起来,关闭方括号或闭括号。
我正在尝试解析看似计算的数据然后解决它。
例如,在字符串中:
'The quick brown 1234*(5+2) jumps over"
取出
the 1234*(5+2)
在字符串
中'[5/{4+(5*2)-1}] on a sunny (2 day.'
只取出
[5/{4+(5*2)-1}]
答案 0 :(得分:0)
使用正则表达式无法100%解决此任务。最好的办法是使用正则表达式来分隔看起来像表达式的东西,然后使用其他引擎来尝试计算它。
这应该是一个好的开始:取出任何连续的数字,括号,括号和算术符号序列:
([-\+\*/\[\]\(\)\d\s]+)
如果通过计算引擎运行此匹配的结果会产生错误,只需跳过它并尝试下一个匹配。