C# 从句子中提取模式字符串并替换另一个字符串
我有一个字符串C# 从句子中提取模式字符串并替换另一个字符串,c#,C#,我有一个字符串 If(objid1+objid2=5;Len("Test");Len("T")) 正在寻找正则表达式以将Objid1转换为Obj(“1”) 因为我有一个内置函数,它支持Obj(“1”)而不是objid1,我不想将现有函数更改为使用此函数的另一个模块 所以上面的陈述看起来像 If(obj("1")+obj("2")=5;Len("Test");Len("T")) Objid+任意数字,最多3位 意思是objid{n}。。。。。。对象{nnn} 有谁能帮助我让正则表达式执行此操作
If(objid1+objid2=5;Len("Test");Len("T"))
正在寻找正则表达式以将Objid1
转换为Obj(“1”)
因为我有一个内置函数,它支持Obj(“1”)
而不是objid1
,我不想将现有函数更改为使用此函数的另一个模块
所以上面的陈述看起来像
If(obj("1")+obj("2")=5;Len("Test");Len("T"))
Objid
+任意数字,最多3位
意思是objid{n}。。。。。。对象{nnn}
有谁能帮助我让正则表达式执行此操作吗?您可以尝试此操作,您可能还希望启用不区分大小写的正则表达式匹配:
Regex.Replace(input, "objid(\\d+)", "obj(\"$1\")")
使用命名的捕获组:
objid(?\d{0,3})
例如:
var str = @"If(objid1+objid2=5;Len(""Test"");Len(""T""))";
var str2 = Regex.Replace(str, @"objid(?<id>\d{0,3})", @"obj(""${id}"")");
//str2 = If(obj("1")+obj("2")=5;Len("Test");Len("T"))
var str=@“If(objid1+objid2=5;Len(““Test”);Len(““T”)”);
var str2=Regex.Replace(str,@“objid(?\d{0,3})”,@“obj”(“${id}”);
//str2=If(obj(“1”)+obj(“2”)=5;Len(“测试”);Len(“T”))