我有一个跟随字符串
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}...... objid{nnn}
有人可以帮我解决正则表达式吗?
答案 0 :(得分:2)
使用命名捕获组:
objid(?<id>\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"))
答案 1 :(得分:1)
您可以尝试这一点,您可能还希望启用不区分大小写的正则表达式匹配:
Regex.Replace(input, "objid(\\d+)", "obj(\"$1\")")