从句子中提取模式字符串并替换另一个字符串
本文关键字:字符串 串并 替换 另一个 字符 模式 句子 提取 | 更新日期: 2023-09-27 18:30:15
我有一个以下字符串
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}
任何人都可以帮助我为正则表达式执行此操作吗?
使用命名的捕获组:
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"))
您可以尝试此操作,您可能还希望启用不区分大小写的正则表达式匹配:
Regex.Replace(input, "objid(''d+)", "obj('"$1'")")