Извлечь строку шаблона из предложения и заменить другую строку

1

У меня есть следующая строка

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}

Может ли кто-нибудь помочь мне выработать выражение для выражения регулярных выражений?

Теги:

2 ответа

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

Вы можете попробовать это, вы можете также разрешить совпадение регулярных выражений с учетом регистра:

Regex.Replace(input, "objid(\\d+)", "obj(\"$1\")")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню