我想用re
模块匹配整数和浮点数。因此,如果有人类型下列输入类型中的一种,应该验证它是一个数字:正则表达式用逗号和点数匹配数字
- 1000
- 1.000
- 1,000
- ($1,000.98)
- -1.000
- 1.0
- $1,0000
现在我使用的是以下几点:
"^[-+]?[0-9]+$"
任何帮助表示赞赏
我想用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位或更多位数)?
- 结束非捕获组(可选)\)?
- 到底$
匹配文字)
(可选) - 结束嗨C.Molloy,这不符合预期,因为如果它包含一个字符串,那么它仍然匹配 - 这不是我想要的。 anubhava提供的解决方案更加完整。但感谢您的帮助! – Probs
真的很酷,谢谢! – Probs