从句子中提取模式字符串并替换另一个字符串

本文关键字:字符串 串并 替换 另一个 字符 模式 句子 提取 | 更新日期: 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'")")
相关文章: