正则表达式.匹配错误不能从字符转换为字符串

本文关键字:字符 转换 字符串 不能 错误 正则表达式 | 更新日期: 2023-09-27 18:16:14

我在NET4.5中有这个c#代码来读取一个文本文件,看起来像这样:

1   3          10.1144881901           48.8578515599          340.2980957031           -3.9997586182           -2.0398821492          -56.6352938643
2   1          10.1137751593           48.8575005060          401.4981384277          -11.7762306910            3.4075851669          -92.5498187137

,我想改变第5行编号

代码

while ((line = file.ReadLine()) != null)
{
     String pattern = @"('d+)'s+('d+)'s+('d+)'s+('d+)'s+('d+)";
     foreach (var expression in line)
         foreach (Match m in Regex.Matches(expression, pattern))
         {                        
            double value = Double.Parse(m.Groups[5].Value);
         }            
}

我得到这些编译错误:

错误CS1502:最佳重载方法匹配' system . text . regulareexpressions . regex。匹配(string, string)'有一些无效参数

错误CS1503:参数1:不能从'char'转换为'string'

正则表达式.匹配错误不能从字符转换为字符串

摆脱你的外部foreach:

while ((line = file.ReadLine()) != null)
{
     String pattern = @"('d+)'s+('d+)'s+('d+)'s+('d+)'s+('d+)";
     foreach (Match m in Regex.Matches(line, pattern))
     {                        
        double value = Double.Parse(m.Groups[5].Value);
     }            
}

你迭代你的字符串,这是一个char数组。