RegExp в Microsoft Word

 

 

 

Специальные знаки в Microsoft Word

 

В Microsoft Word существуют два типа специальных знаков

  • специальные символы (нет на клавиатуре и/или их невозможно непосредственно вписать в строку поиска или замены).

  • подстановочные знаки.

Специальные символы отсутствуют на клавиатуре и/или их невозможно непосредственно вписать в строку поиска или замены. Например:

  • принудительный обрыв строки,

  • мягкий перенос,

  • неразрывный пробел и т. п.

 

 

RegEx и Use wildcards

 

 

Use wildcards (Подстановочные знаки) - режим работы с регулярными выражениями в Microsoft Word.

 

 

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

Некоторые символы и знаки можно использовать только в строке поиска, некоторые — только в строке замены.

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

Microsoft Word воспринимает регулярные выражения только в режиме «Постановочные знаки» (в диалоге поиска и замены).

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

 

 

 

 

 

Специальные символы
используемые при отключенном режиме
Use wildcards

Спец. символы

Что обозначают

^p

Paragraph mark (¶)

Символ конца абзаца (¶)

^?

Any character

Любой символ

^#

Any digit

Любая цифра

^$

Any letter

Любая буква

^e

Endnote mark

Концевая сноска

^d

Field

Поле

^f

Footnote mark

Сноска

^b

Section break
(
===End of Section===)

Обрыв секции
(
===End of Section===)

^w

White space

Любое число и любая комбинация обыкновенных и неразрываемых пробелов, табуляций и концов абзаца

 

 

Специальные символы
использование которых, не зависит от режима Use wildcards

Спец. символы

Что обозначают

^t

Tab character (®)

Символ табуляции (®)

^a

Comment mark

Комментарий

^0nnn

ANSI or ASCII characters

Любой ANSI или ASCII символ с кодом nnn

^^

Caret character

Символ ^

^g

Graphic

Графика

^n

Column break
(··· Break···)

Обрыв колонки
(··· Break···)

^l

Manual line break (?)

Принудительный обрыв строки (?)

^m

Manual page break
(---Page Break---)

Принудительный обрыв страницы
(---Page Break---).

Если опция Use wildcards задействована, то ищет и принудительный обрыв страницы, и обрыв секции.

^+

Em dash (—)

Длинное тире (—). Символ с кодом 0151.

^=

En dash (–)

Короткое тире (–). Символ с кодом 0150.

^s

Nonbreaking space (°)

Неразрываемый пробел (°)

^~

Nonbreaking hyphen (-)

Неразрываемый дефис (-)

^-

Optional hyphen (¬)

Мягкий перенос (¬)

 

 

Подстановочные знаки
используются при включенном режиме Use wildcards

Спец. знаки

Что обозначают

Пример строки поиска

Что будет находить

?

Один любой символ

б?к

бак, бок, бук, б5к, б¶к и т.п.

*

Любое число любых символов

б*к

бык, бардак, белый.¶
Полковник и т.п.

[ ]

Один из указанных символов

б[аоу]к

бак, бок, бук

[-]

Один символ из диапазона.

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

[а-яё]

Любая строчная русская буква

[А-ЯЁ]

Любая прописная русская буква

[0-9]

Любая цифра

[!]

Один любой символ не указанный после восклицательного знака

б[!ы]к

бак, бок и т.п., но не бык

[!x-z]

Один любой символ не входящий в диапазон указанный после восклицательного знака

[!а-яё]ок

Бок, Док и т.п., но не бок, док

[!0-9]

Любой символ кроме цифр

{n}

Строго n штук предыдущего символа или выражения.

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

10{3}

1000, но не 100, 10000

10(20){2}

102020, но не 1020, 10202020

{n;}

n и более штук предыдущего символа или выражения

10{3;}

1000, 10000, 100000 и т.д. но не 100

{n;m}

От n до m штук предыдущего символа или выражения

10{3;4}

1000, 10000, но не 100, 100000

@

Ноль или более штук предыдущего символа или выражения

10@

10, 100, 1000, 10000 и т.д.

<

Начало слова

<бок

боксер, но не колобок

>

Конец слова

бок>

колобок, но не боксер

 

 

Примеры поиска №1

 

СТРОКА ПОИСКА

ЧТО БУДЕТ ИСКАТЬ

<[A-Za-z]@>

Слово латиницей

<[А-яЁё]@>

Русское слово

<[А-ЯЁ][а-яё]@>

Русское слово, набранное строчными буквами, но с прописной

<[0-9]@-[0-9]@>

Два целых числа, разделенные дефисом

\([0-9]\)

Цифра в круглых скобках

[0-9]^0032[A-Za-zА-яЁё]

Цифра и буква (английская или русская) разделенные пробелом.

 

 

Примеры поиска №2

 

НУЖНО НАЙТИ

СТРОКА ПОИСКА РЕЗУЛЬТАТЫ ПОИСКА

Один символ

?

Выражение "к?т" позволяет найти слова "кот" и "кит".

Любую последовательность символов 

*

Выражение "в*д" позволяет найти слова "вход" и "выход"

Начало слова

<

Выражение "<(сол)" позволяет найти слова "солнце" и "солист", но не слово "фасоль"

Один из указанных символов

[]

Выражение "кр[еа]н" позволяет найти слова "крен" и "кран"

Любой символ из указанного диапазона

[-]

Выражение "[з-ф]абор" позволяет найти слова "забор" и "табор". Диапазон должен быть указан в порядке возрастания

Любой символ, кроме символов, которые находятся в диапазоне, указанном в скобках

[!э-я]

Выражение "к[!е-р]а" позволяет найти слова "кода" и "коса", но не слова "кожа" и "кора"

Предыдущий символ или выражение, повторенные n раз 

{n}

Выражение "жарен{2}ый" позволяет найти слово "жаренный", но не слово "жареный".

Предыдущий символ или выражение, повторенные не менее n раз.

{n,} .

Выражение "жарен{1,}ый" позволяет найти слова "жареный" и "жаренный"

Предыдущий символ или выражение, повторенные от nдо m раз 

{n,m}

Выражение "10{1,3}" позволяет найти числа 10, 100 и 1000.

Предыдущий символ или выражение, повторенные не менее одного раза 

@

Выражение "больше@" позволяет найти слова "больше" и "большее".

 

 

Примеры замены №1

 

СТРОКА ПОИСКА

СТРОКА ЗАМЕНЫ РЕЗУЛЬТАТЫ ЗАМЕНЫ

Орлова

Дуралеева

Замена в тексте фамилии Орлова на фамилию Дуралеева

Орло([а-я]@>)

Дуралее\1

Замена в тексте фамилии Орлова на фамилию Дуралеева во всех формах (падежах):

  • Орлова на Дуралеева

  • Орловой на Дуралеевой и т.п.

(лев )(ест )(рис)

\3\2\1

рис ест лев

 

 

Пример замены №2

 

Дано:

Словарь компьютерных терминов на 50 000 статей следующего вида:

Alpha(nu)meric display - буквенно-цифровой (символьный) дисплей
Дисплей, предназначенный для работы с буквенной, цифровой и сопутствующей символьной информацией.

Alpha(nu)meric keyboard - буквенно(алфавитно)-цифровая клавиатура
Клавиатура для ввода кодовых представлений цифр и букв, имеющая маркировку символьного набора.

и т.д. ....

Требуется:

Найти все переводимые английские термины и выделить их полужирным начертанием и красным цветом.
Дефис между английским термином и его переводом заменить на тире (при этом все другие дефисы оставить в неприкосновенности).
Т.е. сделать 50 000 выделений полужирным начертанием для англоязычных терминов и 50 000 замен дефиса на тире, чтобы получилось следующее:

Alpha(nu)meric display — буквенно-цифровой (символьный) дисплей
Дисплей, предназначенный для работы с буквенной, цифровой и сопутствующей символьной информацией.

Alpha(nu)meric keyboard — буквенно (алфавитно)-цифровая клавиатура
Клавиатура для ввода кодовых представлений цифр и букв, имеющая маркировку символьного набора.

и т.д. .....

 

Решение: