Turn "123,456 %" into just "123.456"!
Mainly for use in C# to parse percentage as string into double.
Strip away whitespace
Replace comma with decimal point
Only allow valid numeric input
multiple commas or decimal points won't match
therefore does not support thousands-grouping, not even spaces, sorry
multiple % symbols won't match
any character not 0-9, ,, . or % won't match
+ or - will match, but +- or ± will not, nor will any other operators
Using $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.
See example on repl.it