Замена текста - регулярные выражения - VBA
Формулировка задачи:
Здравствуйте!
Столкнулся с задачей поиска и замены подстроки по маске. Понял, что надо рыть в регулярные выражения, но никак не могу их осилить..((
Задача:
Есть 2 списка слов:
1: Рома, Толя, яблоко, мяч 2: Люся, Валя, малина, кукла
+ есть список строк:Рома сорвал яблоко и поделился этим яблоком с Толяном. Вася и Толя играли в мяч и толя получил мячем в лоб. Рома| сорвал {яблоко, а потом поделился этим яблоком с Толяном. Вася и Толя} играли в мяч и Толя получил мячем в лоб. Любой другой текст
Условие: Сделать во всех строках замену всех слов из первого списка на соответствующие по порядку слова из второго списка с учетом регистра и только полное соответствие слов, т.е., " мяч " заменить на " кукла ", но " мячем " должно так и остаться " мячем ". Кроме того, если перед словом или после слова есть хоть один символ из "{", "|", "}" - то замену тоже не производить. Т.о., на выходе должен получиться такой список строк:Люся сорвал малина и поделился этим яблоком с Толяном. Вася и Валя играли в кукла и толя получил мячем в лоб. Рома| сорвал {яблоко, а потом поделился этим яблоком с Толяном. Вася и Толя} играли в кукла и Валя получил мячем в лоб. Любой другой текст
Вот до чего я дошел:Все работает отлично, замену делает только тех слов что нужны, но есть одно НО - пропадают один символ который стоит перед искомым словом и один символ, который идет сразу за словом. Т.е.,первая строка становится не "Люся сорвал малина и поделился этим яблоком с Толяном.", а "Люсясорвалмалинаи поделился этим яблоком с Толяном." ну и так дальше..((
Никак не могу догнать как сделать, чтобы исходные символы по краям оставались - помогите пож-та.
Решение задачи: «Замена текста - регулярные выражения»
textual
Листинг программы
... arrStroki(j) = RegExp.Replace(arrStroki(j), "$1" & arrSlova2(i) & "$2") 'Заменяем ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д