Microsoft Word позволяет искать форматированный текст и заменять его и форматирование. Эта функция великолепна в моей работе, когда мне нужно конвертировать документы Word в онлайн-опросы. Простой пример - найти bold
слово и заменить его <strong>bold</strong>
.
Однако есть случаи, когда документ, который мы получаем, имеет постороннее, неформатированное пустое пространство между указанным форматированием. Это усложняет процесс поиска и замены всего жирного текста. Кроме того, в некоторых случаях форматирование пустого пространства применяется в тех случаях, когда это не так.
Что такое поиск или замена макроса или подстановочного знака (регулярного выражения), чтобы найти и заменить все пустое пространство с неправильным форматированием с правильно отформатированным пустым пространством?
Два критерия "неправильно" - это то, что последний пробел в строке должен быть неформатирован, а пробел между двумя отформатированными словами должен быть отформатирован. По сути, я пытаюсь создать максимально чистый Replace All.
Возьмите следующий скриншот в качестве примера:
Розовые / фиолетовые блики представляют собой пробел, который является нормальным стилем, но должен быть выделен курсивом.
Красная / оранжевая подсветка представляет пустое пространство, которое выделено жирным шрифтом, но должно быть в обычном, не жирном стиле.
В обоих случаях мне понадобится макрос или подстановочный знак найти / заменить, чтобы знать, как преобразовать один в курсив и полностью удалить стиль жирного шрифта из другого.
Для дальнейшего разъяснения:
В настоящее время, если я выполняю поиск и замену всех, используя только стиль шрифта Microsoft Word, это приводит к трем элементам <em>
в некоторых строках, например:
<em>The average American expects the rate of deflation (opposite</em> <em>of</em> <em>inflation)</em> will be between 0% and 2%
Идеальный результат - один элемент <em>
:
<em>The average American expects the rate of deflation (opposite of inflation)</em> will be between 0% and 2%
(Обратите внимание, что я использую курсив и жирный шрифт в качестве примеров, но то же самое можно сказать и о подчеркивании текста.)