Есть ли способ поиска шаблона в документе MS Word?

Есть ли способ поиска шаблонов внутри документа MS Word вместо точного соответствия?

У меня есть документ, где все десятичные дроби были записаны как / вместо ., Например, 1.02 был написан как 1/02, потому что персидская типография использует / вместо . для десятичной точки.

Как / используется не только для десятичных чисел, но и для других приложений, например, дроби, проценты и т. д., есть ли способ найти шаблон, например N/M в текстовом документе, где N обозначает десятичную и M также показывает другое десятичное число?

2 ответа

Решение

как 'N/M' в текстовом документе, где N обозначает десятичное число, а M также показывает другое десятичное число

Просто для поиска вы можете использовать ^#/^# как ваш параметр поиска. Под дополнительными опциями и найдите Special, есть некоторые другие опции, которые могут быть полезны.

Nb: ^#, является одним десятичным знаком, так что если вы ищете специально для х / у, то это будет ^#/^#^# и т.п.

заменить,

Это лучший вариант, выполните поиск с ([0-9])/([0-9]) и заменить на \1.\2 и включите "использовать подстановочные знаки"

слово

Используйте реализацию Microsoft регулярных выражений

Нажмите CTRL+H ", нажмите" Подробнее "," Включить использование подстановочных знаков ".

  • Найти то, что: ([0-9]{1,2})/([0-9]{2})
  • Заменить: \1.\2

введите описание изображения здесьвведите описание изображения здесь

Это похоже на сумасшедший шаблон поиска, поэтому давайте рассмотрим его:

  • [0-9] обозначает одно числовое значение (0,1,2,3,4,5,6,7,8 и 9)
  • {1,2} используется для подсчета вхождений предыдущего символа или выражения. В нашем случае это означает: Искать только одну или две цифры.

    Внимание: если вы используете немецкое слово, вы должны использовать ; в качестве разделителя вместо ,

  • / не имеет особого значения. Он буквально ищет косую черту
  • () круглые скобки важны. Они делят шаблон на логические последовательности, чтобы мы могли позже использовать \1,\2...\n в нашем шаблоне замены. Таким образом, мы сохраняем ценности

Подробнее читайте в разделе "Выражения по частям" в статье поддержки Microsoft или на сайте Word Грэма Майора.


VBA (лучшее решение)

Я предлагаю вам использовать метод VBA, который больше соответствует стандартным настройкам других движков RegEx. Они лучше задокументированы, и больше людей могут вам помочь.

Этот макрос запрашивает шаблон RegEx для поиска во всем документе и замены его на заданную вами строку.

Нажмите ALT+F11, чтобы открыть редактор VBA. Вставьте код в любое место и выполните его с помощью F5

Sub RegexReplace()

    Dim RegEx As Object
    Set RegEx = CreateObject("VBScript.RegExp")    
    On Error Resume Next

    RegEx.Global = True
    RegEx.Pattern = InputBox("Find what:")
    ActiveDocument.Range = _ 
        RegEx.Replace(ActiveDocument.Range, InputBox("Replace with:"))        

End Sub
  • Найти то, что: (?!\d)/(?=\d)
  • Заменить: .

введите описание изображения здесьвведите описание изображения здесь

Другие вопросы по тегам