В справке Microsoft Word 2007 для «Поиск и замена» говорится:«Если установлен флажок« Использовать подстановочные знаки » , Word найдет только тот текст, который вы укажете».
Это несколько загадочное утверждение означает
- поиск алфавитного текста чувствителен к регистру (хотя вы можете достичь нечувствительности к регистру с помощью поискового выражения, например
[Hh][Ee][Ll][Ll][Oo]
),
- прямые кавычки (
"
) и фигурные кавычки (“
и ”
) не эквивалентны - при поиске одного не будет найдено ни одного, ни другого,
... и, возможно, другие вещи.
Поэтому, если в вашем документе используются прямые кавычки, выполните поиск "([!"]@)"
.
(В подстановочных выражениях Microsoft Word, которые не являются регулярными выражениями, используйте [!qx-z]
означает любой символ, отличный от q
, x
, y
или z
, потому что ^
используется для других вещей (сравнимых с ролью \
в истинных регулярных выражениях), и они используют @
для обозначения одного или нескольких вхождений предыдущий символ или выражение, потому что *
означает любую строку, и я думаю, что они думали, что присвоение специального значения +
будет слишком запутанным для пользователей, не привыкших к истинным регулярным выражениям.)
Как и в расширенных регулярных выражениях, круглые скобки используются для группировки подвыражений.
Если в вашем документе используются фигурные кавычки, выполните поиск по запросу “([!“”]@)”
.
Или, если у вас есть оба, найдите [“"]([!“"”]@)["”]
.
В любом случае замените на (\1)
.
\1
относится к содержимому первой (и единственной) группы в скобках в поисковом выражении, которая является текстом между кавычками.
Несколько странно, что круглые скобки здесь - просто буквальные символы; так что это дает вам результат замены кавычек в скобках.
Обратите внимание, что, поскольку @
означает одно или несколько вхождений предыдущего символа или выражения (т. Е. Оно действует как +
в регулярных выражениях), эти инструкции не найдут пустые строки (т. Е. Два последовательных символа кавычек, между которыми ничего нет).