的第一次出现,我有一些形式中,用户会输入一些数字,我想,以防止它们在此字符串输入多个逗号正则表达式只允许字符
我做了这样的事情
var input = "1,,,,2";
var value = Regex.Replace(input, ",{1,}", ".");
这将输出1.2,这是正确的。但是,如果我进入
var input = 1,,,2,3,,,4,5,,6
都失败
什么ID喜欢做的事就是形成输入的最后一个版本1.23456
有什么建议?
由于
的第一次出现,我有一些形式中,用户会输入一些数字,我想,以防止它们在此字符串输入多个逗号正则表达式只允许字符
我做了这样的事情
var input = "1,,,,2";
var value = Regex.Replace(input, ",{1,}", ".");
这将输出1.2,这是正确的。但是,如果我进入
var input = 1,,,2,3,,,4,5,,6
都失败
什么ID喜欢做的事就是形成输入的最后一个版本1.23456
有什么建议?
由于
Regex.Replace (input, @"(?<=^\d+),", ".").Replace (",", "");
这种具有.
周期替换第一个,
逗号,然后用empty
替换剩余的逗号。
使用这个表达式:(?<!,[^,]*?),+
var res = Regex.Replace(input, @"(?<!,[^,]*?),+", ".").Replace(",", string.Empty);
或者验证码:
var res = Regex.Replace(input, @"(?<!,[^,]*?)(,+)|(,+)",
m => m.Groups[1].Success ? "." : string.Empty);
输出:1.23456
这只适用于fint,但agent-j的方法稍微简单一些 –
你能调用替换()两次,一次更换第一个逗号,并再次删除其余的逗号? –
你为什么用句点替换逗号? (我在问,因为我希望你不要将像3995000,43这样的瑞典格式的数字转换为美国格式的3,995,000.43,所以你可以使用'decimal.Parse',而不是使用'decimal.Parse'与瑞典文化信息。) – dtb
即时通讯替换句点,以便能够进行计算,它与数字格式无关! :) –