Vb.net: регулярное выражение найти и заменить
Здравствуйте, Эксперты !
я делаю случай, когда пользователь может создать пользовательскую формулу, выбрав несколько строк,
Теперь, когда пользователь сохраняет формулу, она находится в таком виде
Цитата:(AL01-RM)+(AL03-RM)+20,0
внутри скобок строки - это некоторые идентификаторы элементов (которые находятся в столбце datagridview),
теперь сценарий таков,
1-он получает приведенную выше строку,
2-найти строку внутри скобок () в столбце datagridview по шаблону регулярных выражений "(?<=\().*?(?=\))")
3-если строка внутри скобок () совпадает со значением столбца 1 datagridview,
4-теперь получите значение из столбца datagridview 2 (это значение строки)
5-теперь замените значение в первой входной строке внутри скобок (), и вот я застрял,
я хочу, чтобы строки, как это
"(10)+(30)+20"
но я получаю такую строку
"(10 ) +(AL03-RM)+20.0(AL01-RM)+(30)+20.0"
я пробовал разные вещи, но не могу выйти, как положено.
"(10)+(30)+20"
Пожалуйста, смотрите изображение для получения более подробной информации
Все хорошо: изображение Ссылка для подробностей[^]
Пожалуйста, помогите мне решить эту проблему.
Что я уже пробовал:
Частная суб SimpleButton2_Click(отправителя как объект, а равно EventArgs) обрабатывает SimpleButton2.Нажмите
Для i As Integer = 0 To dgv. Rows.Количество-1
'Dim paren как новое регулярное выражение ("\([^)]*\)")
'Dim paren как новое регулярное выражение ("\((.*?)\)")
Dim paren как новое регулярное выражение("(?<=\().*?(?=\))")
Команда Dim в виде строки = "((AL01-RM)+(AL03-RM))+20.0"
Тусклые спички как MatchCollection
спички = парен.Совпадения(команда)
Тусклый м как спичка
Для каждого m в матчах
Если M.Метод toString = dgv.Ряды(я).Ячейки (1). Значение Тогда
RTB2.AppendText(Регулярное Выражение.Заменить(команда, м.Метод toString, dgv.Ряды(я).Клетки(2).Значение.Метод toString))
Конец, Если
Следующий
Следующий
Конец Подводной Лодки