我想使用re
模块匹配整数和浮点数。因此,如果有人键入以下输入类型之一,则应验证它是否为数字:
- 1000
- 1.000
- 1,000
- ($1,000.98)
- -1.000
- 1.0
- $1,0000
现在我正在使用以下内容:
"^[-+]?[0-9]+$"
感谢任何帮助
答案 0 :(得分:2)
对于给定的输入,这个正则表达式应该起作用:
^(?:[+-]|\()?\$?\d+(?:,\d+)*(?:\.\d+)?\)?$
<强>解体:强>
^
- 开始(?:
- 启动非捕获组
[+-]
- 匹配+
或-
|
- 或\(
- 匹配(
)?
- 结束非捕获组(可选)\$?
- 匹配$
(可选)\d+
- 匹配1位或更多位数(?:
- 启动非捕获组
,
- 匹配逗号\d+
- 匹配1位或更多位数)*
- 结束非捕获组(零次或多次发生)(?:
- 启动非捕获组
\.
- 匹配DOT \d+
- 匹配1位或更多位数)?
- 结束非捕获组(可选)\)?
- 最后匹配文字)
(可选)$
- 结束答案 1 :(得分:-1)