the regex is probably one of the more efficient ways of confirming the
number...
Not really. Going through the characters in the string and checking for
digits is *far* more efficient.
Search in groups.google.com for a thread called "Checking if a string
can be converted to Int32" in microsoft.public.dotnet.framework. The
results from a bit of benchmarking were (in times for checking 9
strings 100,000 times each):
Just using an exception: 1m 16s
A hand-crafted checking routine: 0.7s
Double.TryParse (for first pass removals): 41s
Regular expression: 43s
The VB "IsNumeric" method: 1m 7s
Regular expressions are incredibly powerful things, but for simple
tests like this, hand-crafted code is almost always going to be more
efficient.