Замена текста - регулярные выражения - VBA

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Столкнулся с задачей поиска и замены подстроки по маске. Понял, что надо рыть в регулярные выражения, но никак не могу их осилить..(( Задача: Есть 2 списка слов:

1: Рома, Толя, яблоко, мяч 2: Люся, Валя, малина, кукла

+ есть список строк:

Рома сорвал яблоко и поделился этим яблоком с Толяном. Вася и Толя играли в мяч и толя получил мячем в лоб. Рома| сорвал {яблоко, а потом поделился этим яблоком с Толяном. Вася и Толя} играли в мяч и Толя получил мячем в лоб. Любой другой текст

Условие: Сделать во всех строках замену всех слов из первого списка на соответствующие по порядку слова из второго списка с учетом регистра и только полное соответствие слов, т.е., " мяч " заменить на " кукла ", но " мячем " должно так и остаться " мячем ". Кроме того, если перед словом или после слова есть хоть один символ из "{", "|", "}" - то замену тоже не производить. Т.о., на выходе должен получиться такой список строк:

Люся сорвал малина и поделился этим яблоком с Толяном. Вася и Валя играли в кукла и толя получил мячем в лоб. Рома| сорвал {яблоко, а потом поделился этим яблоком с Толяном. Вася и Толя} играли в кукла и Валя получил мячем в лоб. Любой другой текст

Вот до чего я дошел:
Все работает отлично, замену делает только тех слов что нужны, но есть одно НО - пропадают один символ который стоит перед искомым словом и один символ, который идет сразу за словом. Т.е.,первая строка становится не "Люся сорвал малина и поделился этим яблоком с Толяном.", а "Люсясорвалмалинаи поделился этим яблоком с Толяном." ну и так дальше..(( Никак не могу догнать как сделать, чтобы исходные символы по краям оставались - помогите пож-та.

Решение задачи: «Замена текста - регулярные выражения»

textual
Листинг программы
...
arrStroki(j) = RegExp.Replace(arrStroki(j), "$1" & arrSlova2(i) & "$2")  'Заменяем
...

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы