我使用以下正则表达式来检测负数:
([-]([0-9]*\.[0-9]+|[0-9]+))
但是我想跳过跟随$的比赛。 如果我使用下面的正则表达式:
([-]([0-9]*\.[0-9]+|[0-9]+)[^\$])
它会正确匹配位置,但会包含以下字符。 例如,在表达式中:
-0.6+3 - 3.0$
它将匹配:
-0.6+
我想只匹配
-0.6
答案 0 :(得分:6)
([-]([0-9]*\.[0-9]+|[0-9]+)(?!\$)
你需要一个negative lookahead
这里不会消耗,只能做出断言。
答案 1 :(得分:0)
从群组中删除$:
([-]([0-9]*\.[0-9]+|[0-9]+))[^\$]
你可以使用这个简化的正则表达式:
(-[0-9]+(?:\.[0-9]+)?)(?!\$)