Регулярные выражения в Word 2016

Обновлено: 21.11.2024

Регулярное выражение (regex или сокращенно regexp) – это специальная текстовая строка для описания шаблона поиска. Вы можете думать о регулярных выражениях как о подстановочных знаках на стероидах. Вы, вероятно, знакомы с подстановочными знаками, такими как *.txt, для поиска всех текстовых файлов в файловом менеджере. Эквивалент регулярного выражения — ^ . * \. текст $ .

Быстрый старт по регулярным выражениям

Если вы просто хотите освоиться с регулярными выражениями, взгляните на одностраничный краткий обзор регулярных выражений. Хотя вы не можете научиться эффективно использовать регулярные выражения из этого краткого обзора, его достаточно, чтобы составить кучу простых регулярных выражений. Каждый раздел в кратком руководстве напрямую связан с подробной информацией в руководстве.

Полное руководство по регулярным выражениям

Не беспокойтесь, если приведенный выше пример или краткое руководство не имеют для вас особого смысла. Любое нетривиальное регулярное выражение выглядит устрашающе для тех, кто с ними не знаком. Но с небольшим опытом вы скоро сможете создавать свои собственные регулярные выражения так, как вы никогда ничего не делали. Бесплатный учебник по Regular-Expressions.info объясняет все по крупицам.

Это руководство совершенно уникально, поскольку оно не только объясняет синтаксис регулярных выражений, но и подробно описывает, как на самом деле работает механизм регулярных выражений. Вы многому научитесь, даже если уже какое-то время используете регулярные выражения. Это поможет вам быстро понять, почему конкретное регулярное выражение не делает то, что вы изначально ожидали, и избавит вас от множества догадок и головных уборов при написании более сложных регулярных выражений.

Учебник по замене строк

Строка замены, также известная как текст замены, представляет собой текст, которым заменяется каждое соответствие регулярному выражению во время поиска и замены. В большинстве приложений текст замены поддерживает специальный синтаксис, позволяющий повторно использовать текст, совпавший с регулярным выражением, или его части при замене. Этот веб-сайт также содержит полное руководство по замене строк, объясняющее этот синтаксис. Хотя строки замены довольно просты по сравнению с регулярными выражениями, между синтаксисом, используемым различными приложениями, и их фактическим поведением все еще существует большое различие.

Приложения и языки, поддерживающие регулярные выражения

Существует множество приложений и языков программирования, поддерживающих регулярные выражения. Если вы программист, вы можете сэкономить много времени и усилий. Часто с помощью одного регулярного выражения в одной или нескольких строках кода можно выполнить то, что в противном случае потребовало бы десятков или сотен.

Многие приложения и языки программирования имеют собственную реализацию регулярных выражений, часто с незначительными, а иногда и со значительными отличиями от других реализаций. Когда два приложения используют разные реализации регулярных выражений, мы говорим, что они используют разные «разновидности регулярных выражений». В отличие от большинства других руководств по регулярным выражениям, руководство на этом веб-сайте охватывает все популярные разновидности регулярных выражений и указывает на различия, на которые следует обратить внимание.

Не только для программистов

Если вы не программист, вы также можете использовать регулярные выражения во многих ситуациях. Они значительно облегчают поиск информации. Вы можете использовать их в мощных операциях поиска и замены, чтобы быстро вносить изменения в большое количество файлов. Простым примером является gr [ ae ] y , который находит оба варианта написания слова grey за одну операцию, а не за две. Существует множество текстовых редакторов и инструментов поиска и замены с достойной поддержкой регулярных выражений.

Дополнительная литература

Если после прочтения этого веб-сайта вам захочется узнать больше о регулярных выражениях, есть множество книг на эту тему.

Есть ли способ изменить число (всегда случайное число) после слова fox? Пример: лиса 23, медведь 1, лиса 398, лягушка 12, лиса 15. Я хочу изменить число на тот же цвет, что и слово лиса.

Мы можем найти и заменить по формату в Microsoft Word. Это отличная функция для быстрого поиска форматированного текста и даже замены всего формата текста в документе.

Выберите Расширенный поиск на ленте.

Диалоговое окно «Найти и заменить»

Введите текст для поиска, затем нажмите кнопку "Дополнительно", чтобы просмотреть дополнительные параметры, и нажмите кнопку "Формат".

Расширенные параметры поиска

Выберите параметр «Шрифт» в настройках, затем вы можете настроить цвет текста, который вы хотели бы найти в документе. Нажмите OK, чтобы закрыть диалоговое окно «Найти шрифт».

Выберите цвет текста в диалоговом окне "Найти шрифт".

Нажмите «Найти далее», и вы увидите, что будет выбрано первое вхождение искомого текста в определенном цвете.

Найти следующее, чтобы найти первое вхождение.

Мы также можем выполнять более сложный поиск, используя подстановочные знаки. Однако собственный модуль поиска Word не позволяет нам выполнять поиск так, как просила Лисса.

Вот где мы можем использовать RegEx в игре!

Библиотека регулярных выражений VBSCript

VBA не поддерживает регулярные выражения. Однако библиотека Microsoft VBScript содержит мощные возможности регулярных выражений. Эта библиотека является частью Internet Explorer 5.5 и более поздних версий, поэтому она доступна на всех компьютерах под управлением Windows XP, Vista, 7, 8, 8.1 или 10.

Поскольку Internet Explorer не является приложением для Mac, этой библиотеки для Mac не существует. Поэтому приведенные ниже примеры VBA не работают на Mac.

Чтобы использовать эту библиотеку в VBA, переключитесь на VBE, выберите «Проект и ссылки» в меню VBE, затем прокрутите список вниз, чтобы найти элемент «Регулярные выражения Microsoft VBScript 5.5», и отметьте его, чтобы включить в приложение.< /p>

Библиотека регулярных выражений VBScript

Вставьте новый модуль, скопируйте и вставьте в этот модуль следующий код.

Эта процедура берет образец текста, находит коды продуктов по заданному шаблону, который начинается с «лисы», одиночного пробела и цифры, и печатает совпадающие коды в окне интерпретации (нажмите Ctrl + G в VBE, если его уже не видно).

Совпадающие коды продуктов печатаются в окне Immediate.

Класс символов \d+ в шаблоне определяет один или несколько числовых символов, а шаблон в основном представляет собой префикс "лиса", за которым следует пробел, за которым следуют числа.

Посетите краткий справочник по языку регулярных выражений, чтобы получить дополнительную информацию об экранировании символов, классах символов и якорях.

Скопируйте и вставьте следующий код, чтобы увидеть, как RegEx удаляет пробелы из кодов продуктов.

Эта процедура заменяет образец текста, удаляя пробелы из кодов продуктов, совпадающих с заданным шаблоном, и печатает результирующий текст в окне интерпретации.

Заменен текст, напечатанный в окне Immediate.

Обратите внимание, что шаблон немного отличается от первого кода. Термины в этом шаблоне заключены в круглые скобки, и соответствующие термины используются в методе Replace как $1 и $2 по порядку. Эта процедура просто соединяет два термина без пробелов.

Вернуться к вопросу

Вернемся к образцу текста, который мы использовали в начале этой статьи.

Образец текста

Нам нужно найти «лису», за которой следуют числовые символы, и изменить соответствие, используя цвет раздела «лиса» в совпавшем тексте.

Несмотря на то, что RegEx очень хорошо соответствует данному шаблону, он не может заменить цвет текста в документе Word. Поэтому мы объединим методы RegEx и Word VBA в следующей процедуре.

Вот шаги:

  1. Найти совпадения с помощью RegEx.
  2. Поиск в каждом совпавшем тексте с помощью метода Word Find.
  3. Найти цвет первого слова в найденном диапазоне.
  4. Измените цвет найденного диапазона на цвет, указанный на предыдущем шаге.

Переключитесь на VBE и вставьте новый модуль. Убедитесь, что в проект добавлена ​​библиотека регулярных выражений VBScript, а затем скопируйте и вставьте следующий код в этот новый модуль.

Запустите код, и вот результат.

Результат

Скачать файл Word

Регулярное выражение в Excel?

Regex полностью отсутствует в Excel. Однако мы по-прежнему можем использовать регулярные выражения VBScript в Excel VBA.

Запустите Excel, откройте новую книгу и создайте содержимое, как показано ниже.

Пример данных в Excel

Переключитесь на VBE и вставьте новый модуль. Убедитесь, что библиотека регулярных выражений VBScript добавлена ​​в проект точно так же, как в Word, и скопируйте и вставьте следующий код в этот новый модуль.

Вернитесь к рабочему листу и выберите диапазон с образцом текста. Запустите макрос и посмотрите результат.

Результат в Excel

Эта процедура перебирает ячейки в выбранном диапазоне, заменяет текст в ячейках, удаляя пробелы из кодов продуктов, соответствующих заданному шаблону RegEx.

Подстановочные знаки и операторы уточняют поиск в Microsoft Word. Простые комбинации вопросительного знака и звездочки позволяют выполнять поиск по различным словоформам. Более продвинутые параметры, такие как диапазоны символов и минимальное/максимальное количество вхождений, делают его еще более мощным.

Знак вопроса соответствует любому одиночному символу; звездочка соответствует любой группе символов (обычно называемой текстовой строкой). Word просматривает звездочку, чтобы увидеть, ограничивают ли какие-либо другие символы поиск.

Например, при поиске wo*d будут найдены такие тексты, как слово, мир и почитаемый.

Нажмите Ctrl+H, чтобы открыть диалоговое окно "Найти и заменить":

Чтобы использовать подстановочные знаки, нажмите кнопку "Дополнительно > >" и установите флажок "Использовать подстановочные знаки" в диалоговом окне "Найти и заменить":

Эти подстановочные знаки удобны для поиска слов, которые вы не знаете, как пишется.

Например, если вы не знаете, как пишется по буквам "получить", вы можете набрать "рек??ве". Затем Word находит любое слово, начинающееся с rec, за которым следуют любые два символа, за которыми следует ve.

Операторы поиска

Например, d?g находит dig, dog и dug, но не наркотик и ридж.

Например, дес*т находит спуск, пустыня, судьба, десерт em>, и уничтожить, и даже исключает, коды - к.

Например, ion> находит возмущение, вдохновение и институт, но не ionic и биономика.

Например, ^[email protected]^t находит одну или несколько меток разрыва абзаца, за которыми следует метка табуляции.

Например, b[aeiu]t находит bat, bet, bit и но, но не долг и сапог.

Например, [am]end находит bend, fend, lend и mend (первым символом в данном случае является a, m или любая буква между ними), но не rend и конец.

Например, t[!ae]ll находит till и toll, но не tall и рассказать.

Например, m[!oz]st находит mast и mist, но не наиболее или < em>должен.

Например, to находит слишком и инструмент, но не to.

Например, a находит четыре или более букв a подряд.

Примечание. В этом примере запятые служат разделителем списка. Если вы видите сообщение Word о том, что был использован недопустимый символ, ваши конфигурации используют другой символ в качестве разделителя списка, обычно точку с запятой. Следовательно, все запятые, разделяющие список, должны быть заменены (например, для вам нужно будет использовать ). См. также, как изменить разделитель списка в Windows 10.

Например, 10 находит 100 и 1000, но не 10.

Например, находит предварительно отсортированные и предотвращенные, но не подавленные и прецедентные.

Замена специальных символов

Помимо поиска и замены текста, вы можете искать и заменять специальные символы Word, такие как абзацы и знаки табуляции.

Как показать/скрыть непечатаемые символы в документе Word

Microsoft Word содержит много типов непечатаемых символов, таких как различные типы пробелов, табуляций, разрывов строк или страниц и т. д. Непечатаемые символы также известны как пробелы в типографике, непечатаемые символы в предыдущих версиях продуктов Microsoft или метки форматирования.

Как вставить символы валюты в Word

Символ валюты или знак валюты — это краткое обозначение названия валюты. Это может быть буква, буквосочетание, иероглиф, слог, специальный знак или символ, другие разновидности графем, графические сокращения, аббревиатуры (в том числе в виде буквенного кода), условные буквенные обозначения, а также их сочетания. В качестве знака валюты можно использовать даже целое слово.

Я уже читал статьи о регулярных выражениях. Я хочу управлять строками в кавычках в Word (у меня версия 2013).

Мне нужно заменить кавычки скобками.

следует заменить

Я попытался найти "*" и заменить на \(*\) .

Но мне это не удалось.

@Prasanna: Microsoft Word, по крайней мере, с 2007 года, имеет параметр «Использовать подстановочные знаки» в диалоговом окне «Найти» (и заменить). Он поддерживает синтаксис, который находится на полпути между подстановкой оболочки (командной строки) и реальными регулярными выражениями (а-ля ed, grep и vi). Например, ? означает (любой) один символ, а * означает любую строку (и [xyz] означает x , y или z ) — но , , и работают, поэтому некоторые люди небрежно называют их регулярными выражениями (хотя Microsoft этого не делает).

1 Ответ 1

В справке Microsoft Word 2007 для «Найти и заменить» говорится: «Если установлен флажок «Использовать подстановочные знаки», Word находит только тот текст, который вы укажете». Это несколько загадочное утверждение означает

  • поиск буквенного текста чувствителен к регистру (хотя вы можете добиться нечувствительности к регистру с помощью поискового выражения, такого как [Hh][Ee][Ll][Ll][Oo] ),
  • прямые кавычки ( " ) и фигурные кавычки ( " и " ) не эквивалентны — поиск одной не приведет ни к одной другой,

… и, возможно, другие вещи.

Итак, если в вашем документе используются прямые кавычки, выполните поиск "([!"]@)". ] для обозначения любого символа, отличного, кроме q , x , y или z , потому что ^ используется для других вещей (сравнимых с ролью \ в настоящих регулярных выражениях), и они используют @ для обозначения одного или больше вхождений предыдущего символа или выражения, потому что * означает любую строку, и я предполагаю, что они думали, что присвоение специального значения + будет слишком запутанным для пользователей, не привыкших к истинным регулярным выражениям.) Как и в расширенных регулярных выражениях, круглые скобки используются для групповые подвыражения. Если в вашем документе используются фигурные кавычки, найдите «([!«»]@)» . Или, если у вас есть оба, найдите [“"]([!“""]@)[""] . В любом случае замените на (\1) . \1 относится к содержимому первой (и единственной) группы, разделенной скобками, в поисковом выражении, то есть к тексту, заключенному в кавычки. Несколько сбивает с толку тот факт, что круглые скобки здесь — это просто буквальные символы; так что это дает вам результат замены кавычек скобками.

Читайте также: