我如何在组值中进行正则表达式拆分?

时间:2016-11-02 18:26:40

标签: c#

我试图进行正则表达式拆分,但我的代码不起作用。

我不知道这是多么正确。

string input = "code1,code2,#c55+G35+G97#g,coden,code3,code4,#c44+A25+A07#gcoden";

string output = Regex.Replace(
     input,
     "#c(.*?)#g",
      m => m.Groups[1].Value 
         + m.Groups[2].Value.Regex.Split(@"+\w").Sum(v => int.Parse(v)) + "#" );

+\w匹配" + A"和" + G"

我的错误出现在这一行:m => m.Groups[1].Value + m.Groups[2].Value.Regex.Split(@"+\w").Sum(v => int.Parse(v)) + "#" );

ERROR

  

' System.Text.RegularExpressions.Group'不包含' Regex'的定义没有扩展方法' Regex'接受类型' System.Text.RegularExpressions.Group'的第一个参数。可以找到(你错过了使用指令或汇编引用吗?)(CS1061) -

ERROR2

  

无法将lambda表达式转换为' string'因为它不是委托类型(CS1660)

如何使用正则表达式拆分?

这是我想要的输出

代码1,码2,#C55 + 35 + 97#G187#,CODEN,CODE3,码4,#C44 + 25 + 07#G76#密码子

请帮帮我

1 个答案:

答案 0 :(得分:0)

 using System;

     using System.Text;
        using System.IO;
           using System.Linq;

     using System.Text.RegularExpressions;

   class Program


   {

     static void Main()

     {

        string input =   "code1,code2,#c55+G35+G97#g,coden,code3,code4,#c44+A25+A07#gcoden";

  string output = Regex.Replace(
    input,
    "(#c(.*?)#g)",
    m => m.Groups[1].Value + Regex.Split(m.Groups[2].Value, @"\+\w").Sum(v => int.Parse(v)) + "#" );
 Console.WriteLine(output);



  }
      }

感谢你的回答Johnny Mopp