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