首页 > 解决方案 > 算术表达式中的正则表达式数字

问题描述

我想捕获字符串中的所有数字,
例如:

+================+============+
| string         | match      |
+================+============+
| 5*-33 = 75.3   | 5|-33|75.3 |
+----------------+------------+
| s44+2=7        | 2|7        |
+----------------+------------+
| ii2*-5 = 46    | -5|46      |
+----------------+------------+
| -2*-2.1 =  0.1 | -2|-2.1|0.1|
+================+============+

我尝试使用以下表达式,但它不适用于带符号的数字。

\b([0-9]+(\.\d+)?)\b

正则表达式

标签: regex

解决方案


不要忘记可选的-. -不是一个数字,所以你必须单独捕获它。

\b(-?\d+(\.\d+)?)\b

当然,这会对有效表达式产生问题,例如:

4-3

但这似乎是一个不同的问题。


推荐阅读