C#.NET4.5.1正则表达式奇怪吗?

And*_*s59 2 c# regex .net-4.5

我正在阅读其中包含十进制数字的文本文件.它们可以在"任何"文化中制作,因此小数点可能与当前文化不同.

所以我使用正则表达式用当前替换所有不同的CurrencyDecimalSeparators.

我正在使用此代码

string output = Regex.Replace(inValue, @"[\.\?,;/-]", CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator);
Run Code Online (Sandbox Code Playgroud)

例如1.25 - > 1,25(我在瑞典)

现在我的问题是:当我第一次尝试这个时,我正在使用这个正则表达式""[\.,;/ - \?]"这不起作用.所有字符都替换为当前分隔符.

例如1.25 - > ,,,,

为什么?

//安德斯

Jer*_*rry 6

这是因为/-\?.这是一个字符范围/?(在?被转义).

该范围包括:

/ 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
Run Code Online (Sandbox Code Playgroud)

如果你看到一个unicode表

在此输入图像描述