我想使用该re模块来匹配整数和浮点数。因此,如果有人键入以下输入类型之一,它应该验证它是否是一个数字:
- 1000
- 1.000
- 1,000
- ($1,000.98)
- -1.000
- 1.0
- $1,0000
Run Code Online (Sandbox Code Playgroud)
现在我正在使用以下内容:
"^[-+]?[0-9]+$"
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏
对于给定的输入,此正则表达式应该有效:
^(?:[+-]|\()?\$?\d+(?:,\d+)*(?:\.\d+)?\)?$
Run Code Online (Sandbox Code Playgroud)
拆散:
^- 开始(?:- 启动非捕获组
[+-]- 匹配+或-|- 或者\(- 匹配(
)?- 结束非捕获组(可选)\$?- 匹配$(可选)\d+- 匹配 1 个或多个数字(?:- 启动非捕获组
,- 匹配逗号\d+- 匹配 1 个或多个数字)*- 结束非捕获组(零次或多次出现)(?:- 启动非捕获组
\.- 匹配一个点\d+- 匹配 1 个或多个数字)?- 结束非捕获组(可选)\)?)-最后匹配一个文字(可选)$- 结尾