我试图进行正则表达式拆分,但我的代码不起作用。
我不知道这是多么正确。
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#密码子
请帮帮我
答案 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