我正在使用StreamReader将CSV文件的每一行读取为字符串。当我处理每一行时,我需要删除任何只有其他数字包围的逗号。
例如,如果字符串是:
"textfield1", "textfield2", "100.00", "1,070.00"
我只需要从整个字符串中取出“1,070.00”的逗号,结果是:
"textfield1", "textfield2", "100.00", "1070.00"
从CSV文件中读取的每个字符串可以在字段数,长度等方面有所不同,所以我需要使用一些东西(正则表达式可能?)来查看整个字符串而无需硬编码位置或删除所有逗号
以下是我一直在尝试的方法:
StreamReader sr = new StreamReader(strInputFile);
string nextLine = sr.ReadLine();
try
{
while ((nextLine = sr.ReadLine()) != null)
{
string rawtext = nextLine.Replace("[0-9]"+","+"[0-9]" , "[0-9]"+"[0-9]");
// ....rest of code
}
}
这显然不起作用,因为我不明白该怎么做:) 我是C#的新手,也是Regex的经验,所以希望这个相对简单。
答案 0 :(得分:5)
听起来你想要使用正则表达式:
string rawtext = Regex.Replace(nextLine, @"(\d),(\d)", "$1$2");
或者这种等效模式:
string rawtext = Regex.Replace(input, @"(?<=\d),(?=\d)", "");