0

我需要帮助编写一个 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}]
4

1 回答 1

0

使用正则表达式无法 100% 解决此任务。你最好的办法是使用正则表达式来分离看起来像表达式的东西,然后使用其他引擎来尝试计算它。

这应该是一个好的开始:取出任何连续的数字、括号、大括号和算术符号序列:

([-\+\*/\[\]\(\)\d\s]+)

如果通过计算引擎运行该匹配的结果产生错误,只需跳过它并尝试下一个匹配。

于 2013-04-17T06:03:14.693 回答