Регулярные выражения для поиска в 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, поэтому продолжайте пробовать с ними. После того, как вы действительно разберётесь, какой потенциал несут регулярные выражения, вы сможете увеличить вашу продуктивность. Нам только следует порекомендовать вам не делать большие операции поиска и замены одновременно для всего документа, если у вас нет полной уверенности что ваши подстановочные символы делают именно то, что вы задумали. Также рекомендуется для этого использовать тестовые копии документов.

Связанные статьи:

  • Как в Microsoft Word сделать массовую замену или удаление текста (74%)
  • Как убрать лишние пробелы в Microsoft Word (74%)
  • Как выделить текст цветом в Word (66.3%)
  • Как вставить музыкальный символ, ноты в Word (57.7%)
  • Как напечатать диапазон страниц документа Word из нескольких разделов (57.7%)
  • Как добавить линию над текстом в Word (RANDOM — 50%)

I want to remove leading and trailing tags from country names.
In my example those tags are <li> and <a>.

<li><a href="http://afghanistan.makaan.com/">Afghanistan</a></li>
<li><a href="http://albanie.makaan.com/">Albanie</a></li>
<li><a href="http://algérie.makaan.com/">Algérie</a></li>

Result should be:

Afghanistan
Albanie
Algérie

In Microsoft Word, I want to use the Find and Replace feature to accomplish it with regular expression.

How can I use regular expressions in MS Word?

nixda's user avatar

nixda

26.6k17 gold badges107 silver badges155 bronze badges

asked Nov 30, 2013 at 6:30

user2791156's user avatar

8

Instead of copying your input text to Word, copy it to Notepad++ or any other editor with full RegEx support.

A RegEx string to select everything outside of tags or everything between > and < signs would be.

(?<=>).*?(?=<)

enter image description here

  • (?<=>) is a look behind. It looks for > signs and acts as an anchor. This way you can exclude the search string, which is important since you don’t want <Afghanistan
  • .*? is a lazy quantifier and selects everything until the very next expression
  • (?=<) is a look ahead and looks for a < sign but excludes the searched sign itself. Just like the look behind

But you don’t want to select the country names. You want to remove every tag. You need the opposite of the first regular expression. Somthing like

<.*?>

enter image description here

  1. Open Notepad++ search & replace dialog
  2. Select Use regular expressions
  3. Find what: <.*?>
  4. Replace with: nothing

answered Dec 2, 2013 at 22:04

nixda's user avatar

nixdanixda

26.6k17 gold badges107 silver badges155 bronze badges

1

This is easy to do in MS Word’s Find and Replace, without Regex, without JavaScript, etc.

If you escape a bracket it finds the actual bracket character. So, with wildcards toggled on, the expression <*\> will find everything between angle brackets. Just replace that with nothing.

Greenonline's user avatar

Greenonline

2,1579 gold badges23 silver badges30 bronze badges

answered Jun 9, 2017 at 16:58

Eliot Gelwan's user avatar

This looks like it’s what you need.

Given latest comment (that you just want it in javsacript) — I’d look somewhere like here

if you want that in a SQL database, then I’d probably just write a couple of lines of perl to give you the list from the raw javascript. As far as I can tell; MS word doesn’t come into it.

answered Nov 30, 2013 at 9:21

phatmanace's user avatar

phatmanacephatmanace

1711 silver badge9 bronze badges

1

I wouldn’t use find/replace for that. It would be simplest to use «Text to Columns» in Excel for that task. To do it, select the column that contains the text, go to the «Data» ribbon and select «Text to Columns». You will need to do it twice, once to remove all the text prior to the country name (delimited symbol would be «>» — make sure you delete the extraneous columns to avoid confusion) and once to remove the text after the name (delimited symbol would be «<«).

answered Dec 2, 2013 at 18:46

Karen927's user avatar

Karen927Karen927

7223 silver badges13 bronze badges

0


August 20, 2018 — by Suat M. Ozgur

How to Use RegEx in Microsoft Word

Lissa asks:

Is there a way to change a number (always a random number) after the word fox? Example: fox 23, bear 1, fox 398, frog 12, fox 15. I want to change the number to the same color of the word fox.

We can find and replace by format in Microsoft Word. This is a great feature to quickly find the formatted text, and even replace the entire text format in the document.

Select Advanced Find on the ribbon.

Find and Replace Dialog

Find and Replace Dialog

Enter the text to find, then click More button to see advanced options, and click on Format button.

Advanced Find Options

Advanced Find Options

Select Font option in the settings, then you can set up the text color that you would like to find in the document. Click OK to close Find Font dialog window.


Select text color in Find Font dialog.

Select text color in Find Font dialog.

Click Find Next, and you’ll see the first occurance of the text being searched in certain color will be selected.

Find Next to find first occurance.

Find Next to find first occurance.

We can also make more complicated searches by using wildcards. However, Word’s native search module doesn’t let us make a search how Lissa asked.

That’s where we can call RegEx into the game!

VBSCript Regular Expressions Library

VBA doesn’t ship with any regular expression support. However Microsoft VBScript library contains powerful regular expression capabilities. This library is part of Internet Explorer 5.5 and later, so it is available on all computers running Windows XP, Vista, 7, 8, 8.1, or 10.

Mac Users

Since Internet Explorer is not a Mac application, this library doesn’t exist in Mac. Therefore, VBA samples below don’t work in Mac.

To use this library in VBA, switch to VBE, select Project and References in the VBE menu, then scroll down the list to find the item «Microsoft VBScript Regular Expressions 5.5», and tick it to include in the application.

VBScript Regular Expressions Library

VBScript Regular Expressions Library

Insert a new module, and copy and paste the following code into this module.

Sub doRegexFind()
Dim strSample As String
Dim objRegex As RegExp
Dim matches As MatchCollection
Dim fnd As Match

    strSample = "First product code is fox 12, second one is fox 22, and third product is fox 45."
    
    Set objRegex = New RegExp
    
    With objRegex
        .Pattern = "fox d+"
        .Global = True
        .IgnoreCase = True
        Set matches = .Execute(strSample)
        For Each fnd In matches
            Debug.Print fnd
        Next fnd
    End With
End Sub

This procedure takes the sample text, finds the product codes by the given pattern — which is starting with «fox», single space and a number, and prints the matched codes in the Immediate window (hit Ctrl + G in VBE if it is not visible already).

Matched product codes printed in Immediate window.

Matched product codes printed in the Immediate window.

d+ character class in the pattern defines one or more numeric characters, and pattern is basically «fox» prefix followed by a space followed by numbers.

Copy and paste following code to see RegEx in action to remove the spaces from product codes.

Sub doRegexFindReplace()
Dim objRegex As RegExp
Dim matches As MatchCollection
Dim fnd As Match
Dim strSample As String

    strSample = "First product code is fox 12, second one is fox 22, and third product is fox 45."
    
    Set objRegex = New RegExp
    
    With objRegex
        .Pattern = "(fox) (d+)"
        .Global = True
        .IgnoreCase = True
        strSample = .Replace(strSample, "$1$2")
    End With
    
    Debug.Print strSample
End Sub

This procedure replaces the sample text content by removing the spaces from the product codes matched with the given pattern, and prints the result text in the Immediate window.

Replaced text printed in the Immediate window.

Replaced text printed in the Immediate window.

Please note that pattern is slightly different than the first code. Terms in this pattern are enclosed with parentheses, and corresponding terms are used in the Replace method as $1 and $2 in order. This procedure simply joins the two terms without spaces.

Back to the Question

Let’s go back to the sample text we used at the beginning of this article.

Sample Text

Sample Text

We need to find «fox» followed by numeric characters, and change the match by using the color of the «fox» section in the matched text.

Although RegEx is very good matching by the given pattern, it cannot replace the color of text in Word document. So we will combine RegEx and Word VBA methods in the following procedure.

Here are the steps:

  1. Find the matches with RegEx.
  2. Search each matched text by using Word Find method.
  3. Find the color of the first word in the found range.
  4. Change the color of the found range with the color in the previous step.

Switch to VBE, and insert a new module. Make sure VBScript Regular Expressions library is added to the project, and copy and paste the following code into this new module.

Sub doRegexMagic()
Dim str As String
Dim objRegex As RegExp
Dim matches As MatchCollection
Dim fnd As Match
    Set objRegex = New RegExp
    
    str = "fox"
    
    With Selection
        .HomeKey wdStory
        .WholeStory
    End With
    
    With objRegex
        .Pattern = str & " d+"
        .Global = True
        .IgnoreCase = True
        Set matches = .Execute(Selection.Text)
    End With

    With Selection
        .HomeKey wdStory
        With .Find
            .ClearFormatting
            .Forward = True
            .Format = False
            .MatchCase = True
            For Each fnd In matches
                .Text = fnd
                .Execute
                With Selection
                    .Font.Fill.ForeColor = .Range.Words(1).Font.TextColor
                    .MoveRight wdCharacter
                End With
            Next fnd
        End With
        .HomeKey wdStory
    End With
End Sub

Run the code, and here is the result.

Result

Result

RegEx in Excel?

Regex is completely missing from Excel. However, we can still use VBScript Regular Expressions in Excel VBA.

Launch Excel, open a new workbook, and create the content as shown below.

Sample data in Excel

Sample data in Excel

Switch to VBE, and insert a new module. Make sure VBScript Regular Expressions library is added to the project just like you did in Word, and copy and paste the following code into this new module.

Sub doRegexMagicInExcel()
Dim str As String
Dim objRegex As RegExp
Dim matches As MatchCollection
Dim fnd As Match
Dim rng As Range
Dim cll As Range

    Set objRegex = New RegExp
    Set rng = Selection
    
    str = "fox"
        
    With objRegex
        .Pattern = "(" & str & ") (d+)"
        .Global = True
        .IgnoreCase = True
        For Each cll In rng.Cells
            Set matches = .Execute(cll.Value)
            For Each fnd In matches
                cll.Value = .Replace(cll.Value, "$1$2")
            Next fnd
        Next cll
    End With
End Sub

Return to worksheet, and select the range with sample text. Run the macro, and see the result.

Result in Excel

Result in Excel

This procedure loops through the cells in the selected range, replaces the text in the cells by removing the spaces from the product codes matched with the given RegEx pattern.

Title Photo: tito pixel / Unsplash

Майкрософт почему­то свои регулярки на называет “wildcards”

Примеры

Поиск

Описание Найти
Найти все русские буквы в документе [А‐ЯЁа‐яё]
Найти все русские аббревиатуры, длиной от 2 до 8 символов <[А‐ЯЁ]{2;8}>
Найти все, что в фигурных скобках {*}
Найти все ссылки на нормативные документы вида “{некоторый текст}” {[a‐zA‐Z0‐9‐.]@}
Найти все даты в документе [0‐3][0‐9][‐./][0‐1][0‐9][‐./][0‐9]{2;4}
Поиск всех разрывов страниц, переносов строки.т.д. [^11^12^13]
Поиск KKS­-кода систем (FH1 специфична) <[A‐CF‐NPQSX][A‐HJ‐NP‐Z][A‐HJ‐Z]
Поиск ККS-кода арматуры (FH1 специфична) <[A‐CJ‐NPQSX][A‐HJ‐NP‐Z][A‐HJ‐Z][0‐9,//(/)]@AA[0‐9,//(/)]{1;20}
Поиск ККS­кодов оборудования с кодом отказа для ВАБ (FH1 специфична) <[A‐Z]{3}[0‐9,//(/)]@[A‐Z]{2}[0‐9,//(/)]@[A‐GI‐MP‐TVW][A‐Z][A‐FH‐MO‐Y]>
Поиск кодов функций вида ­”AC3b_31D” (FH1 специфична) <[A‐Z][A‐Z][0‐9][a‐z]_[0‐9][0‐9A‐Z]{1;2}>
Поиск вида: [1], [10­15], [3,4,9] [[0‐9‐, ]{1;12}]
Найти все шифры документов (FH1 специфична) <FH1.*.[ER]>

Замена

Описание Найти Заменить на
Заменить в десятичных числах запятую на точку ([!,]<[0‐9]@),([0‐9Ee]@>) 1.2
Удалить пустые строки (^0013){2;} 1
Удалить подряд идущие пробелы ^0032{2;} ^0032
Замена двух или более пробелов на табуляцию ^0032{2;} ^0009
Удалить пробел перед знаком препинания (.,:;!? итд) ^0032([.,:;!?]) 1
Замена пробела между цифрой и буквой (английской или русской) на не разбиваемый пробел ([0‐9])^0032([A‐Za‐zА‐яЁё]) 1^s2
Замена дефиса перед цифрой на минус ‐([0‐9]) ^01501
Замена круглых скобок вокруг 1­ой цифры на квадратные (([0‐9])) [1]
Замена пробела между цифрами на не разбиваемый пробел ([0‐9])^0032([0‐9]) 1^s2
Удалить фигурные скобки вокруг “{A}” {([A‐Z])} 1
Заменить “4.5.4.1” на “7.5.4.1”. Проводит замену первой цифры ([!*])4. 17.

Есть почти книга в Word, где часть текста оформлена жирным, курсивным начертанием, подчёркиванием, в общем, всё, как надо. Нужно для всего форматированного текста сделать соответствующие HTML-теги, чтобы потом использовать текст в вебе.

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

Короче, пришёл я к статье о регулярных выражениях в функции «Найти и Заменить», написал конструкцию, только ищет она отдельные слова, а не словосочетания. Скрин прилагается:
hPrNx6bwoLg.jpg

В общем, поскольку изучить VBA пока что выглядит не тривиальной задачей, возникает вопрос: как вычислить форматированный текст (отдельными словами и словосочетаниям, с любыми знаками до и после) и обрамить его HTML-тегами. Если регулярка — то направление, то какова должна быть её конструкция?

Что я примерно ожидаю в итоге:
Lorem ipsum dolor <b>sit amet, eu</b> eirmod offendit eos, te <i>wisi</i> voluptua vel.

Понравилась статья? Поделить с друзьями:
  • Регулярные выражения для поиска в excel
  • Регулярные выражения в vba для excel
  • Регулярные выражения excel что это
  • Регулярные выражения excel фильтр
  • Регулярные выражения excel или