Регулярное выражение, чтобы найти начало абзаца в Word

Я использую Word 2016, и мне нужно удалить некоторые абзацы, начиная или заканчивая известными словами. Например, в следующем тексте:

Lorem Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit.¶

Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua, ¶

Ut enim ad minim veniam, quis nostrud упражнение ullamco labouris nisi ut aliquip ex ea.¶

Lorem Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit. Ut enim ad minim veniam, ...¶

Параграфы, начинающиеся с заданного слова / строки, работают должным образом (исключите 1-й и 4-й абзацы):

Найти то, что: "Lorem ipsum dolor *^13" | Заменить: "" | Джокер: On

Абзацы, заканчивающиеся заданным словом / строкой, не работают (удалите второй абзац). Пытался:

  • "^13* magna aliqua,^13" ^10 = CR - удаляет все слева, включая предыдущие абзацы
  • "^10*magna aliqua,^13" ^10 = НЧ - без изменений

Я также попробовал несколько интересных примеров на этом сайте http://word.mvps.org/faqs/general/usingwildcards.htm, но не нашел решения.

Есть ли способ сделать это без VBA?

0 ответов

"^13* magna aliqua,^13" ^10 = CR - удаляет все слева, включая предыдущие абзацы

Это понятно, потому что * соответствует любым символам, включая CR, поэтому совпадающая часть простирается от первого найденного CR над любыми абзацами, расположенными между ними, до конца, заканчивающегося на magna aliqua,,

Чтобы не совпадать с другими окончаниями абзаца, мы должны использовать что-то кроме *:

[!^13]@ magna aliqua,^13

[!^13] означает "любой символ, кроме CR", @ означает "один или несколько случаев этого".

Чтобы удалить все абзацы, начинающиеся с 'Lorem', в соответствии с вашим примером, вы можете использовать подстановочный знак Find/Replace, где:

Find = ^13Lorem[!^13]{1,}
Replace = nothing

Чтобы удалить все абзацы, заканчивающиеся на "magna aliqua", в соответствии с вашим примером, вы можете использовать подстановочный знак " Найти / Заменить", где:

Find = [!^13]@magna aliqua,^13
Replace = nothing

Вы не можете объединить их в один Find/Replace, который находит either - только один, который найдет оба.

Другие вопросы по тегам