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

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

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

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

Подстановочные символы (wildcards) — это * (звёздочка), . (точка) и ? (знак вопроса), которые имеют в регулярных выражениях специальное значение. Например, символ * (звёздочка) обозначает любое количество любых символов, а ? (знак вопроса) означает любой один символ.

Давайте начнём знакомство с продвинутыми возможностями поиска в Word!

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

В ленте Word переключитесь на вкладку «Главная» и нажмите кнопку «Заменить»:

В окне «Найти и заменить» кликните «Больше >>», чтобы развернуть диалоговое окно и увидеть дополнительные опции. Если вы увидели кнопку «<< Меньше», значит всё прошло удачно.

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

Обратите внимание, что после того, как вы включили опцию «Подстановочные знаки», Word сразу под полем «Найти:» показывает, что эта опция включена. Также когда выбран флажок «Подстановочные знаки», некоторые опции становятся недоступными для включения, а именно: «Учитывать регистр», «Только слово целиком», «Учитывать префикс», «Учитывать суффикс».

Теперь нажмите кнопку «Специальный» для просмотра списка подстановочных знаков.

В Word доступны следующие подстановочные символы:

Символ Значение
? Любой знак
[-] Символ в диапазоне
< В начале слова
> В конце слова
() Выражение - единая последовательность символов. Также применяется для обратных ссылок
[!] Не
{;} Число вхождений
@ Предыдущий 1 или более
* Любое число знаков
^t Знак табуляции
^^ Знак крышки
^n Знак столбца
^+ Длинное тире
^= Короткое тире
^g Графический объект
^l Разрыв строки
^m Разрыв страницы / раздела
^~ Неразрывный дефис
^s Неразрывный пробел
^- Мягкий перенос

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

Готовые увидеть как работают подстановочные символы? Давайте ознакомимся с конкретными примерами использования регулярных выражений и подстановочных символов в Word.

Для чего используются подстановочные символы?

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

Здесь мы заострим внимание в первую очередь на подстановочных знаках, которые означают один или более символов текста или модифицируют поиск на основе другого символа в вашем поиске.

Использование звёздочки для указания любого количества символов

Скорее всего, самым часто используемым подстановочным символом для вас станет звёздочка. Она означает, что вы хотите найти любое количество символов. Например, чтобы найти все слова, начинающиеся с «отм», напечатайте «отм*» в строке поиска и затем кликните кнопку «Найти далее». Наше регулярное выражение означает любое количество букв (* звёздочка), следующих после «отм».

В качестве альтернативы ввода символа звёздочки с клавиатуры, вы можете использовать выбор специального символа из списка подстановочных знаком. Вначале наберите «отм» в строке «Найти». Поставьте галочку «Подстановочные знаки». Затем кликните кнопку «Специальный» и выберите «Любое число символов». После этого нажмите кнопку «Найти далее»:

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

Вы должны помнить важную вещь: при включении подстановочных знаков, поиск автоматически становится чувствительным к регистру (такова особенность регулярных выражений, частью которых являются подстановочные символы). Поэтому поиск «отм*» и «Отм*» даст различные результаты.

Использование знака вопроса для поиска определённого количества символов

В то время как звёздочка означает любое количество символов, знак вопроса в регулярном выражении означает единичный (один) символ. Например, если «отм*» будет искать строки начинающиеся с «отм» за которыми идёт любое количество символов, то «отм?» будет искать строки, начинающиеся с «отм», за которой идёт только один символ.

Как и звёздочку, знак вопроса можно использовать в любой части слова — в том числе в начале и в середине.

Также можно использовать вместе несколько знаков вопроса вместе, тогда они будут обозначать несколько букв.

Например, регулярное выражение для поиска «о?о?о» оно означает букву «о», за которой идёт любой символ, затем снова идёт буква «о», затем опять любой символ и затем опять буква «о» найдёт следующие слова:

  • потоков
  • многополосных
  • многополосных
  • которое
  • правового
  • такового
  • такого основания

Можно найти слова с четырьмя буквами «о», шаблон «о?о?о?о»:

  • которого
  • многополосных

Или с тремя буквами «а», шаблон «а?а?а»:

  • наказания
  • задача
  • аппарата
  • высказана
  • началах

Необязательно использовать одинаковые буквы — составляйте выражения под ваши задачи.

Например, чтобы найти слова, в которых первая буква «з», затем идёт любой другой символ, а затем буква «к» и вновь любой символ, шаблон для поиска «з?к?» найдёт:

  • закономерности
  • законодательно

Использование знака собачка (@) и фигурных скобок ({ and}) для поиска вхождений предыдущего символа

Вы можете использовать знак собачка (@) для указания одного или более вхождения предыдущего символа. Например, «ro@t» найдёт все слова, которые начинаются на «ro» и заканчиваются на «t» и которые имеют любое количество букв «o» между этими частями. Поэтому по этим условиям поиска будут найдены слова «rot», «root» и даже «roooooot».

Для большего контроля поиска предыдущих символов, вы можете использовать фигурные скобки, внутри которые укажите точное число вхождений предыдущего символа, который вы хотите найти. Например, поиск «ro{2}t» найдёт «root», но не найдёт «rot» или «roooooot».

Также поддерживает синтаксис вида {n;} - означает искать количество вхождений символа более n раз; {;m} - означает искать количество вхождений символа менее m раз; {n;m} - означает искать количество вхождений символа более n раз, но менее m раз.

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

[бвгджзйклмнпрстфхцчшщ]{4}

Использование угловых скобок (< и >) для обозначения начала и конца слова

Думаю, вы заметили, особенно когда составляли поисковые запросы со звёздочкой, что пробел считается за обычный символ и могут быть найдены довольно неожиданные фрагменты большого размера, либо фрагменты, состоящие из двух слов. Вы можете использовать угловые скобки (символы «больше чем» и «меньше чем») для обозначения начала и конца слова поиска. Например, вы можете искать «<но>» и Word найдёт все вхождения «но», но не найдёт слова вроде «новости», «законодатель».

Это довольно полезно, но эта техника становится более мощной, когда вы комбинируете её с другими подстановочными символами. Например, с помощью «<з????>» вы можете найти все слова, которые начинаются на «з» и состоят ровно из пяти букв.

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

  • руководство
  • множество
  • средство
  • количество

Использование квадратных скобок ([ и ]) для поиска определённых символов или диапазонов символов

Вы можете использовать квадратные скобки для указания любых символов или диапазонов символов. Например «[а]» будет искать любые вхождения буквы «а».

В следующем примере, будет искаться строка, которая начинается на «р», затем идёт любая гласная, а затем снова буква «р»: «р[аеиоуэюя]р»

Далее аналогичный пример, но между буквами «р» должно быть две любых гласных: «р[аеиоуэюя]{2}р», будет найдено, к примеру, слово «приоритет».

Вы также можете искать квадратные скобки для поиска диапазонов символов, например «[a-z]» найдёт любую из этих букв в нижнем регистре. Поиск «[0-9]» найдёт любую из этих цифр.

Пример р[а-и]{2}р найдёт строку, которая начинается и заканчивается на букву «р» между которыми две любые буквы из указанного диапазона.

Следующий пример довольно сложный, но при этом и довольно интересный:

[А-Я]{1}[а-я0-9 ,-]{1;}.

В начале строки должна стоят любая заглавная буква ([А-Я]) ровно один раз ({1}). Затем должны идти маленькие буквы, цифры, пробелы, запятые и тире ([а-я0-9 ,-]) хотя бы один раз и более ({1;}), в самом конце должна стоять точка (.)

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

То есть вы можете комбинировать подстановочные символы и дополнять их кванторами количества, а затем это всё комбинировать любое количество раз, пока не получите желаемый результат. На самом деле, это довольно сложно — почти как программирование, поскольку требует абстрактного мышления.

Использование скобок для группировки поисковых терминов в последовательности

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

Можно использовать довольно простые шаблоны, например «(го){3;}» найдёт строки, в которых «го» встречается три и более раза подряд.

Но настоящую силу эта конструкция покажет при использовании в операциях поиска и замены.

Показанная далее техника называется «обратные ссылки». Начнём с конкретного примера, чтобы было проще понять. Предположим, нам нужно во всём документе поменять местами два слова, допустим, имя и фамилию. К примеру, во всём тексте множество раз упоминается «Милосердов Алексей», а нам нужно, чтобы было «Алексей Милосердов».

Для этого в строке поиска мы вставляем «(Милосердов) (Алексей)», а в строке «Заменить на» пишем «\2 \1».

Скобки не участвуют в поиске, то есть в результате будет искаться фраза «Милосердов Алексей» При этом то, что было найдено в первых скобках, будет присвоено как значение «\1», а то, что было найдено во вторых скобках, станет значением «\2». При этом найденная строка заменится на «Алексей Милосердов».

Можно сделать по-другому, допустим вместо фамилии и имени, я хочу заменить на фамилию и инициалы, тогда в строке поиска я ищу «(Милосердов) (Алексей)», а в строке «Заменить на» пишу «\1 А.В.».

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

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

Тогда для поиска любых дат составляем регулярное выражение с подстановочными символами:

«[0-9]{2}.[0-9]{2}.[0-9]{4}»

«[0-9]» - это диапазон, обозначающий все цифры, «{2}» - это квантор количества, который говорит, что предыдущий символ должен встречаться ровно два раза. То есть будет искаться строка длиной ровно два символа, состоящая из цифр. Затем идёт точка, затем снова аналогичная строка и точка, и в конце строка из четырёх цифр.

Строка подходит для поиска, но чтобы были созданы обратные ссылки, мы заключаем нужные нам элементы в круглые скобки: «([0-9]{2}).([0-9]{2}).([0-9]{4})» - она будет работать точно также, как и предыдущая.

Теперь составляем строку «Заменить на». В начале идёт год, то есть третья группа, она обозначается как «\3», затем точка, затем вторая группа, затем опять точка и затем первая группа, получаем «\3.\2.\1».

Используйте обратный слэш (\) если вам нужно искать символы, которые являются подстановочными знаками

А что если вам нужно найти в документе символ, который используется как подстановочный? Например, если вам нужно найти звёздочку? Если просто её вставите, то она сработает как подстановочный знак и будет найдено всё что угодно. Есть два способа искать символы в их буквальном значении.

Первый способ, это снять галочку с опции «Подстановочные знаки» перед выполнением поиска. Но если вы не хотите это делать, вы можете использовать обратный слэш (\) перед этим символом. Например, чтобы найти буквальный знак вопроса при включённых «Подстановочных знаках», введите в поле Поиск «\?».

Заключение

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


Comments

  1. Как изменить форматирование в заголовках типа ТЕКСТ 1, ТЕКСТ 2 … ТЕКСТ 50 на, например,  ТЕКСТ 1, ТЕКСТ 2 … ТЕКСТ 50 ? Как изменить форматирования слова ТЕКСТ понятно, но вот как его изменить вместе с постоянно меняющимися числительными нигде найти не могу. 

     

    1. Приветствую! Вопрос очень интересный.

      1. Откройте «Найти и заменить»
      2. В поле «Найти» введите
      ТЕКСТ [0-9]{1;}
      1. Кликните на поле «Заменить на» и нажмите там Ctrl+b
      2. Нажмите кнопку «Больше»
      3. Поставьте галочку «Подстановочные знаки».
      4. Нажмите кнопку «Заменить всё».

      Строка «ТЕКСТ [0-9]{1;}» означает буквальную последовательность «ТЕКСТ», затем один пробел, затем одна или более цифр.

  2. Наиполезнейшая статья! Спасибо!
    ----
    Правда слёту кое-что не смог понять. Например, попробовал в тексте заменить на ничто (т.е. по сути удалить) несколько символов сразу:
    .,!?—:„“«»()
    Заключал эти символы и в [], и в ()… - выдаёт, что "поле "Найти" содержит неверный шаблон поиска.
    Подскажите, что я делаю не так? Спасибо.

    1. Приветствую!

      Если коротко, то правильно нужно было бы записать так:

      [.,\!\?\—\:„“«»\(\)]{1;}

      Причины вашей ошибки:

      • не соблюдён синтаксис регулярных выражений
      • не экранированы специальные символы
  3. Здравствуйте, Alexey!

    Спасибо за статью - очень любопытный и ценный материал!
    Пока формировал вопрос, удалось выполнить задачу 😀

    Для примера поделюсь кейсом и возможной ошибкой…

     

    Задача: текст вида "[неразборчиво: 00:17:30]" (как в кавычках) найти и выделить красным цветом. Цифры в каждом случае - разные. Например: [неразборчиво: 00:23:34], [неразборчиво: 00:98:47] и т.д.

    Решение: 

    Ищем: \[неразборчиво: ??:??:??\]

    Замена на: ^& (на само себя, как я где-то нашёл)

    Функции поиска: использование подстановочных знаком, игнорирование пунктуации, игнорирование пробелов.

    Примечание: чтобы именно искомый текст был заменён на красный, а не красный был, как искомый, перед нажатием кнопки "Формат" снизу предварительно "выбираем" (щелкаем) поле "Заменить на".

     

    Ещё раз спасибо от души!

    Труд на пользу!

  4. Тёзка, приветствую!

    Задача такая: из файла с субтитрами удалить т.н. closed captions (подписи для глухих).

    пример: [ Играет Музыка ]

    1. Приветствую! Вам нужно использовать следующее регулярное выражение:

      \[?*\]
      
      1. Благодарю, как все оказывается просто )

  5. Здравствуйте. Вот такой вопрос: как найти какое-либо выражение с "необязательным" пробелом? К примеру такое: в 15 ч. 25 м.

    Т.е. перед ч. и м. пробел может быть, а может и отсутствовать (в 15ч. 25м.). Если написать так в [0-9]{2} ч. [0-9]{2} м. - должны быть найдены вхождения с пробелами, но ни чего не находит. А еще нужно чтобы без пробелов искалось. Символ @ ищет от единицы и более, а от нуля и более я не нашел.

    1. Приветствую! Ваш шаблон в [0-9]{2} ч. [0-9]{2} м. в моих тестах находит выражения «в 15 ч. 25 м.», то есть с пробелами. В настройках поиска не забывайте включить «Подстановочные знаки».

      Следующий шаблон в [0-9 ]{2;3}ч. [0-9 ]{2;3}м. находит как выражения с пробелами, так и без них. Также не забывайте включить «Подстановочные знаки» в настройках поиска.

  6. Добрый день. Помогите решить следующую задачу:

    Имеется шаблон для поиска - некое (любое) «слово», после которого, через пробел стоит одно из трех - (A)(K), или (Q) (все символы - латиницей!).

    Требуется заменить (A), (K), или (Q) на ("A"), ("K"), или ("Q"). Т.е - те же символы, но в кавычках.

    Как найти искомые символы - я быстро сообразил (работает оба из следующих вариантов) - \([AKQ]\), или -  \([(A)(K)(Q)]\)

    Но - я так и не нашел (не понял), как указать Ворду, чтоб он найденные символы менял на такие же, но уже в кавычках!

    Буду благодарен за помощь!

    1. Приветствую! Либо я неправильно понял вашу задачу, либо вам вместо функции «Найти» нужно воспользоваться функций «Найти и заменить» и в ней данные буквы по одной поменять на помещённые в кавычки.

      Если я всё-таки неправильно понял, то можете вы привести фрагмент текста? Или объяснить иначе.

      1. Судя по всему - вы поняли правильно. И то, что для этой задачи можно применить опцию "найти и заменить", без подстановочных знаков, конечно я знаю. Но - идея была в том, чтоб избежать, именно, многократного повторения операции. А вместо этото использовать опцию "найти и заменить" с подстановочными знаками. Для того, чтоб применить следующую логику поиска/заманы - "найди любой из 3х вариантов - [(A)(K)(Q)] и - если это (A), то замени на ("A"). Если это (К), то - замени на ("К") и, если это (Q), то замени на ("Q")

      2. Задача заключается в том, чтоб не повторять одну и ту же операцию несколько раз, с разными символами (A), (K), или (Q), а вместо этого найти "любой из" этих вариантов за одну итерацию поиска и заменить на соответствующий, но уже изменненный (с кавычками). Именно для этого я ищу решение с подстановочными знаками (регулярными выражениями), понимая, что при помощи стандартной опции "поиск и замена", таким образом задачу не решить.

        Буду благодарен за подсказку решения именно в том ключе, как я описал.

  7. Alexey

    Задача заключается в том, чтоб не повторять одну и ту же операцию несколько раз, с разными символами (A), (K), или (Q), а найти "любой из" этих вариантов за одну итерацию поиска и сразу же заменить на соответствующий, но уже изменненный (с кавычками). Именно для этого я ищу решение с подстановочными знаками (регулярными выражениями), понимая, что при помощи стандартной опции "поиск и замена", таким образом задачу не решить

  8. В общем - вдруг ещё кому пригодится - решение следующее:

    Заходим в поиск и замена. Включаем подстановочные знаки. 

    В строку "Поиск" вводим \(([A-Z])\)
    В строку "Заменить": ("\1")
     
    При этом надо в настройках Word (Параметры, правописание, параметры автозамены) отключить в двух местах автоматическую замену кавычек!

    Решение подсказали ребята на одном форуме!

  9. Здравствуйте. Можно ли найти и выделить из всего текста только слова содержащие определенную букву? Например, е́.

    1. Здравствуйте! Посмотрите на следующий пример, он выделяет все слова, содержащие хотя бы одну букву «Ю» или «ю» в любой части слова (букву можете заменить на свою — в выражении она встречается 2 раза — заглавную и строчную):

      <[А-Яа-я]@[Юю][А-Яа-я]@>
      
  10. Alexey, добрый день!

    Подскажите, пж, как в тесте найти и выделить все 10-значные числа - ИНН организаций? Заранее благодарю.

    1. Приветствую! Следующее выражение должно найти все числа, в которых ровно 10 цифр:

      <[0-9]{10}>

      В этом выражении:

      • < означает начало слова
      • [0-9]{10} означает ровно 10 любых цифр
      • > означает конец слова
      1. Alexey, благодарю, получилось! Но каким образом все найденные числа массово выделить и скопировать в отдельный документ? Заранее благодарю!

        1. Откройте документ из которого вы хотите скопировать ИНН (слова), нажмите «Поиск» → «Расширенный поиск» → Нажмите кнопку «Больше >>» → Поставьте галочку «Подстановочные знаки» → Введите шаблон поиска <[0-9]{10}> → Там где «Выделение при чтении» выберите «Выделить всё» → Там где «Область поиска» выберите «Основной документ».

          Теперь текст, соответствующий шаблону поиска подсвечен и выбран. Нажмите Ctrl+C (перед этим можно закрыть диалоговое окно «Найти и заменить».

          Перейдите в документ, куда вы хотите вставить скопированные данные, и нажмите Ctrl+V.

          1. Alexey, спасибо, все получилось! Сэкономил кучу времени и на будущее пригодится!

  11. Здравствуйте. Подскажите где недодумал реализацию:

    В наборе слов, символов и пробелов при нахождении искомого слова, необходимо удалить две строки - с этим словом и следующую. Разделитель строк ^13. Искомое слово перед разделителем.

    ^13*Armenia^13*^13   отрабатывает излишне - бывает правильно, а бывает захватывает более двух строк(при этом две последние - правильные). Ну и лишний первый ^13 - не знаю как выделять начиная со следующего.

    Armenia^13*^13   отрабатывает правильно, но не захватывает начало строки до искомого слова.

  12. Сам дошёл!

    [!(^13)]@Armenia^13*^13

    Осталось …Ну и лишний первый ^13 - не знаю как выделять начиная со следующего.

    1. Более универсальный шаблон поиска-выделения двух строк с искомым словом в первой (если искомое слово где-нибудь в первой строке):

      [!(^13)]@Спортивные*^13*^13

      Осталось исправить для выделения строк начиная со следующего после абзаца символа - подскажите кто "в теме".

      P.S. не забываем ставить галочку "Подстановочные знаки"

  13. Добрый день. Помогите пожалуйста решить следующую задачу:

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

  14. Здравствуйте. А вот такую задачу как решить?

    Есть 4 слова: тяжелый, тяжелая, тяжелое, тяжелее.

    Нужно в первых трёх заменить букву "е" на "ё", а последнее не трогать.

    Такой способ не работает: тяжел[(ый)(ая)(ое)]

    А такой способ затрагивает все слова (включая последнее): тяжел(??)  -->  тяжёл\1

    Иными словами вопрос такой: Как в диапазоне (в квадратных скобках) указывать 2 и более символов? Т.е. не вот так [аоуыэ] – 5 гласных, а вот так [ая, ое, ее, ие] – т.е. несколько букв вместе.

    1. Приветствую! Может быть, просто сделать замену три раза для полных слов тяжелый, тяжелая, тяжелое?

  15. Здравствуйте!
    Есть ли способ сделать следующую автозамену, например:

    10001-01
    10002-01
    10003-01
    …….
    10050-01

    Нужно сделать так, чтобы последними символами стояло не -01, а -02.

     

  16. Здравствуйте,

    как найти в тексте "незакрытые" кавычки ёлочкой?

    неработающий, но, думаю поясняющий мою мысль шаблон поиска

    «*[!»]«

    1. Приветствую! Будем исходить из того, что текст в кавычках должен находиться в рамках одного абзаца (без этого ограничения я не знаю как решить задачу). Также будем исходить из того, что непарные кавычки будем искать в несколько этапов.

      Итак, чтобы найти строки, содержащие непарные закрывающие кавычки ёлочкой:

      ^13[А-Яа-яA-Za-z0-9,-. ]{1;}»

      Чтобы найти строки, содержащие непарные открывающие кавычки ёлочкой:

      ^13[А-Яа-яA-Za-z0-9,-. ]{1;}«[А-Яа-яA-Za-z0-9,-. ]{1;}[!»]

      Альтернативный вариант (не равнозначен предыдущему):

      «[А-Яа-яA-Za-z0-9,-. ]{1;}^13

      Предыдущие примеры могут не сработать на строках, в которых хотя и есть непарные кавычки ёлочкой, но ещё есть и парные.

      Следующее выражение будет искать непарные открывающие кавычки ёлочкой даже если в строке присутствуют парные кавычки:

      [А-Яа-яA-Za-z0-9,-. ]{1;}«[А-Яа-яA-Za-z0-9,-. ]{1;}«

      Следующее выражение будет искать непарные закрывающие кавычки ёлочкой даже если в строке присутствуют парные кавычки:

      [А-Яа-яA-Za-z0-9,-. ]{1;}»[А-Яа-яA-Za-z0-9,-. ]{1;}»

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

      Если задача является повторяющейся (вы каждый день правите тексты с непарными кавычками), то лучше использовать сторонние инструменты, например, написать небольшой скрипт на PHP, в котором можно использовать полноценные регулярные выражения, либо алгоритмы вроде «подсчитать количество закрывающих и открывающих кавычек в каждой строке и вывести те строки, где их количество не равно друг другу».

      1. Благодарю за ответ.

        Я не стремился "прижучить" Word, но убедился, что логику понимаю правильно.

         

  17. Спасибо тебе, это очень крутая статья, я знал что у функции "заменить"  большой потенциал, но не думал, что настолько

  18. Добрый день! На вашем сайте читаю самую ценную информацию и адекватные комментарии. Помогите, пожалуйста!

    Я не специалист, поэтому разобрать в макросах мне сложно. Я редактирую тексты. Раньше висячие предлоги убирала с помощью команды, которую нашла в интернете: заменой ([ ^s])([а-яА-Яa-zA-Z]{1;2}) ([а-яА-Яa-zA-Z]) на \1\2^s\3. Галочку на подстановочных знаках ставлю.

    Раньше всегда работало, сейчас возникла проблема — выскакивает надпись: Поле ''Найти'' содержит неверный шаблон поиска. Не могу нигде найти ответ, что надо поменять.

    Буду благодарна, если поможете. Работаю на макбуке, ворд 16, если это важно.

    Спасибо!

  19. Ребят подскажите как заменить по тексту числа в скобках на числа с точкой? пример (20) на 20.

  20. Здравствуйте. Имеется тест, в которм правильные ответы отмечены звёздочкой в начале строки. Задача убрать звёздочку из начала строки а в конце строки поставить такое выражение: |1

    Пример для пояснения

    Исходный текст:

    Кто съел колобка?

    заяц

    волк

    медведь

    *лиса

     

    Что нужно получить в итоге:

    Кто съел колобка?

    заяц

    волк

    медведь

    лиса |1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo