【发布时间】:2016-05-28 20:02:39
【问题描述】:
给定以下算术表达式: -1-5+(-3+2)
需要找到正数和负数的匹配项。对于该表达式,预期结果是:-1 5 -3 2
我尝试使用正则表达式 -?\d+(.\d+)?但它返回:-1 -5 -3 2 其中 -5 不正确。
是否可以构建正则表达式模式来获取该案例和其他类似案例的正数和负数?
【问题讨论】:
-
您使用什么语言/工具?如果支持,后向操作可能会导致 solution。
-
你必须定义(对自己和正则表达式)为什么 -1 是正确的但 -5 是不正确的。
-
你可以使用
(^|\D)([-]?\d*\.?\d+)(在JS中),或者(?<!\d)[-]?\d*\.?\d+(如果它是一个更好的正则表达式引擎)。 -
(?
-
@Alex,我发布了我的建议并添加了解释。
标签: regex