.net 正则表达式(见问题)?

.net 正则表达式(见问题)?,.net,regex,.net,Regex,这里有一个简单的例子:)关于正则表达式 我有这个正则表达式 "^\\$?(\\d{1,3},?(\\d{3},?)*\\d{3}(\\.\\d{2})?|\\d{1,3}(\\.\\d{2})?|\\.\\d{2}?)$" 它在{100,$100,$100.15,$1000,$1000.15}上工作,等等 我想要一个简单的正则表达式,它可以处理像:{100100.15}这样的数字,仅此而已-没有逗号和货币符号垃圾 谢谢 伏都教 ^(\d+(\.\d{2})?|\.\d{2})$ \d+一个

这里有一个简单的例子:)关于正则表达式

我有这个正则表达式

"^\\$?(\\d{1,3},?(\\d{3},?)*\\d{3}(\\.\\d{2})?|\\d{1,3}(\\.\\d{2})?|\\.\\d{2}?)$"
它在{100,$100,$100.15,$1000,$1000.15}上工作,等等

我想要一个简单的正则表达式,它可以处理像:{100100.15}这样的数字,仅此而已-没有逗号和货币符号垃圾

谢谢

伏都教

^(\d+(\.\d{2})?|\.\d{2})$
  • \d+
    一个或多个数字
  • (\。\d{2})?
    可选小数部分
  • |
  • (\.\d{2})
    或仅小数部分
如果将整数部分设置为
\d*
,则正则表达式将匹配一个空字符串

如果可以使用“向前看”,则可以使用它确保字符串不是空的

^(?=.)\d*(\.\d{2})?$

您可以尝试以下方法:

"^\d+(\.\d{1,2})?$"

这将匹配一个数字,后跟一个可选的小数点和1或2个小数点。

此外,我可以在哪里测试它,任何好的链接都是一个可以输入金额的字段……因此,任何可以选择输入两个小数点的数字。正则表达式有不同的风格。虽然有一个公共子集,但有时您需要特定于味道的某些特性(例如lookbehinds)。因此,在问正则表达式问题时,最好说明您使用的是什么味道(.NET、PCRE、JavaScript)。我个人会使用
(?!$)
\d\d
。解释让我投你一票。(任何非平凡的regexp都值得评论。)
(?!$)
听起来比
(?=)
好。我考虑了
\d\d
,但选择了
\d{2}
,因为它里面有
2
,我认为它读起来更好。在我最初的问题中,我不得不使用转义字符“\”,因为它是在csharp代码中,你们知道有没有更好的方法在csharp代码中不使用转义字符吗?@VoodooChild,使用逐字字符串文字:
@^(\d+(\.\d{2})?\.\d{2}$“
(包括
@
)。谢谢大家:)(逐字字符串我以前忘了那个词,谢谢)干杯