Найти и заменить с помощью регулярного выражения в Microsoft Word 2013

Я редактирую документ электронной книги с большим количеством ненужной разметки. У меня есть ряд разделов в тексте с кодом, подобным этому:

<i>Some text here</i>

Я пытаюсь запустить поиск и замену регулярного выражения, которое найдет любую фразу между двумя i-тегами, удалит i-теги и применит стиль к тексту.

Вот что я использую для поиска:

Find: (<i>)(*)(</i>)
Replace: \2

Я также выбираю Styles > я (для курсива). Это говорит нашему конверсионному программному обеспечению применять курсив к тексту. Если я оставлю i-теги, то в результате процесс преобразования ScribeNet преобразует их в шестнадцатеричные значения, чтобы они отображались как буквальный текст в электронной книге. Грязное.

Когда я запускаю этот поиск, я не получаю никаких результатов. У меня есть "использование подстановочных знаков". Что мне не хватает? Согласно веб-сайту справки Microsoft, * используется для представления любого числа или типа символов, а отдельные строки должны быть заключены в круглые скобки.

Ответы

Ответ 1

Для поиска символа, который определяется как подстановочный знак, поместите обратную косую черту (\) перед этим символом. Сама строка * соответствует любой строке символов, поэтому используйте квантификатор диапазона для соответствия (1 или больше раз)

Find: \<i\>(*{1,})\</i\>
Replace: \1

Ответ 2

Найдите \<i\>(*{1,})\</i\> и замените на \1. Не забудьте проверить Use wildcard.

Здесь есть справочная таблица для "регулярных выражений" Word: http://office.microsoft.com/en-ca/word-help/find-and-replace-text-by-using-regular-expressions-advanced-HA102350661.aspx

  • < и > являются специальными символами, которые должны быть экранированы
  • * означает любой символ
  • {1,} означает один или несколько раз