我需要为指定的字符串进行数字验证。问题是,字符串可能是一个很大的数字,比C#中的任何数字类型都要大,所以我不能使用TryParse函数,因为它们只会提供有关它们是否可以转换为那些类型。
应考虑 - / +,分隔符和当前文化设置。
我找到了一些使用正则表达式的解决方案,但他们都错过了一些细节。而且我不擅长正则表达式
答案 0 :(得分:9)
如果您使用的是C#4.0,则可以使用BigInteger
,并且数字是整数。
Represents an arbitrarily large signed integer.
答案 1 :(得分:3)
如果使用.NET 4.0,则可以使用BigInteger。它包含一个TryParse,它接受IFormatProver
即可满足您的需求。 BigInteger
的大小不受限制,因此您所需的数字不可能大于BigInteger
可以处理的数字。
答案 2 :(得分:0)
看看http://www.regexlib.com/Search.aspx?k=numeric&c=-1&m=5&ps=20。 http://regexlib.com/包含许多正则表达式的示例,并且必须有一个符合您要求的示例。