Мне нужно внести некоторые глобальные изменения в ряд электронных таблиц, и я думаю, что лучший способ - это использовать регулярные выражения, поэтому я добавил ссылку на библиотеку типов регулярных выражений Microsoft VBScript и теперь могу обрабатывать регулярные выражения. Я использую функцию со следующей подписью:
RegExpSubstitute ( target as string, searchREGEX as string, replaceREGEX as string) as string
У меня есть несколько ячеек с таким содержимым:
'ALBERTS1:XLRI_CHEM_CHEMICAL_1' * 'Albert_Chemicals_SG_Lime' * 'Albert_Chemicals_Conc_Lime' * 'Albert_Lime_price' / 1000
Все элементы, начинающиеся с "Albert_", должны быть заменены на "'ALBERTS1-", а все остальные подчеркивания в этом символе должны быть заменены на тире. Первая часть, которую я могу сделать с:
new = RegExpSubstitute(old, "(')([^-:_ ]+)(_)([^']*)(')", "$1" & scadaPrefix & "-$4$5")
но это только заменяет первый '_' на '-', и мне нужно сделать все остальные в этом символе. Первый символ, начинающийся с «ALBERTS1:» не должен быть изменен.
В настоящий момент я думаю, что лучше всего разбить строку на символы на символе пробела, а затем обработать каждый символ отдельно, но могу ли я сделать все это за один поиск и заменить?