Я уже читал статьи о регулярных выражениях . Я хочу манипулировать строк в кавычках в Word (у меня есть версия 2013).

Мне нужно заменить символы кавычек на круглые скобки.

Например:

"Привет, мир."

должен быть заменен

(Привет, мир.)

Я попытался найти "*" и заменить на \(*\) .

Но мне не удалось это сделать.

1 ответ1

2

В справке Microsoft Word 2007 для «Поиск и замена» говорится:«Если установлен флажок« Использовать подстановочные знаки » , Word найдет только тот текст, который вы укажете».  Это несколько загадочное утверждение означает

  • поиск алфавитного текста чувствителен к регистру (хотя вы можете достичь нечувствительности к регистру с помощью поискового выражения, например [Hh][Ee][Ll][Ll][Oo]),
  • прямые кавычки (") и фигурные кавычки ( и ) не эквивалентны - при поиске одного не будет найдено ни одного, ни другого,

... и, возможно, другие вещи.

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

Обратите внимание, что, поскольку @ означает одно или несколько вхождений предыдущего символа или выражения (т. Е. Оно действует как + в регулярных выражениях), эти инструкции не найдут пустые строки (т. Е. Два последовательных символа кавычек, между которыми ничего нет).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .