% symbols won't match0-9, ,, . or % won't match+ or - will match, but +- or ± will not, nor will any other operators$1$2.$3$4 for substitution spits out a sanitized number with a forced decimal point.Note: The decimal point is present even when the number input doesn't include any decimals, e.g. for 12% the result will be 12.. You may wish to append a 0 in your code to make it 12.0 - in .NET 4.5 C# the double.Parse and double.TryParse handle the result just fine even without that, but your mileage may vary.