У меня есть следующая строка
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
+ любое число от max до 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\")")