正则表达式用逗号和点数匹配数字
问题描述:
我想用re
模块匹配整数和浮点数。因此,如果有人类型下列输入类型中的一种,应该验证它是一个数字:正则表达式用逗号和点数匹配数字
- 1000
- 1.000
- 1,000
- ($1,000.98)
- -1.000
- 1.0
- $1,0000
现在我使用的是以下几点:
"^[-+]?[0-9]+$"
任何帮助表示赞赏
答
对于给定的输入这个表达式应该工作:
^(?:[+-]|\()?\$?\d+(?:,\d+)*(?:\.\d+)?\)?$
破碎:
-
^
- 启动 -
(?:
- 开始非捕获组-
[+-]
- 匹配+
或-
-
|
- OR -
\(
- 匹配(
)?
- 完非捕获组(可选)
-
-
\$?
- 匹配$
(可选) -
\d+
- 第1个或多个数字 -
(?:
- 开始非捕获组-
,
- 匹配一个逗号 -
\d+
- 第1个或多个数字
-
-
)*
- 完非捕获组(零个或多个发生) -
(?:
- 启动非捕获组-
\.
- 匹配一个DOT -
\d+
- 匹配1位或更多位数
-
-
)?
- 结束非捕获组(可选) -
\)?
- 到底 -
$
匹配文字)
(可选) - 结束
真的很酷,谢谢! – Probs