与货币的 .NET 兼容的 RegEx 字符串
RegEx string compatible with .NET for currency
到目前为止,我已经看到了一些关于 Regex 的问题,其中一些非常有帮助,但我在获得我需要的结果时遇到了一些问题...
帮助我学到很多东西的问题之一是这个:Regular expression to match numbers with or without commas and decimals in text
上面问题中给出的表达式是:
(:?^|\s)((?:[1-9]\d{0,2}(?:(?:,\d{3})*|\d*)|0|(?=\.))(?:\.\d*[1-9])?)(?!\S)
它将允许这样的事情:
100,000
999.999
90.0009
1,000,023.999
0.111
.111
0
...而不是:
1,1,1.111
000,001.111
999.
0.
111.110000
1.1.1.111
9.909,888
现在可以了,但我不想允许:
0.111
.111
0
我不想允许超过 2 位小数,所以 100.333 不会被接受,而 100.33 会通过。我也不希望通过任何以 0 开头的内容。
这是我第一次处理正则表达式,我知道 Whosebug 在问我看过的这个问题时给了我一些建议,但我现在真的不明白这一点——如果你能帮助我理解我需要更改什么以及为什么,我将不胜感激。
您可以使用以下内容:
(:?^|\s)((?:[1-9]\d{0,2}(?:(?:,\d{3})*|\d*)|(?=\.))(?:\.\d{0,2})?)(?!\S)
^ ^^^^^
将\d*[0-9]
更改为\d{0,2}
到目前为止,我已经看到了一些关于 Regex 的问题,其中一些非常有帮助,但我在获得我需要的结果时遇到了一些问题...
帮助我学到很多东西的问题之一是这个:Regular expression to match numbers with or without commas and decimals in text
上面问题中给出的表达式是:
(:?^|\s)((?:[1-9]\d{0,2}(?:(?:,\d{3})*|\d*)|0|(?=\.))(?:\.\d*[1-9])?)(?!\S)
它将允许这样的事情:
100,000
999.999
90.0009
1,000,023.999
0.111
.111
0
...而不是:
1,1,1.111
000,001.111
999.
0.
111.110000
1.1.1.111
9.909,888
现在可以了,但我不想允许:
0.111
.111
0
我不想允许超过 2 位小数,所以 100.333 不会被接受,而 100.33 会通过。我也不希望通过任何以 0 开头的内容。
这是我第一次处理正则表达式,我知道 Whosebug 在问我看过的这个问题时给了我一些建议,但我现在真的不明白这一点——如果你能帮助我理解我需要更改什么以及为什么,我将不胜感激。
您可以使用以下内容:
(:?^|\s)((?:[1-9]\d{0,2}(?:(?:,\d{3})*|\d*)|(?=\.))(?:\.\d{0,2})?)(?!\S)
^ ^^^^^
将\d*[0-9]
更改为\d{0,2}