Чи є спосіб пошуку шаблону в документі MS Word?


30

Чи є спосіб шукати шаблони в документі MS Word замість точної відповідності?

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

Оскільки /він використовується не лише для десяткових знаків, але він має й інші додатки, наприклад, дроби, відсотки тощо, чи є спосіб знайти такий зразок, як N/Mу текстовому документі, де Nпозначається десятковий, а Mтакож відображається інше десяткове число?


2
Як це не дублікат понад 5 років після запуску Super User?
Пітер Мортенсен


Ну, було б важко перенести його в блокнот, якщо в середині був інший текст, давайте припустимо, що хтось пише статтю в журналі (будь ласка, використовуйте замість нього латекс), щоб вони не могли перенести це слово або щось подібне, вони втратили б усі інші формати.
Charm_quark

1
Я щойно перевірив: останні версії MS Word зберігають документи Word (* .docx) як заархівовані документи на основі XML. Як тільки ви дізнаєтесь, як працює ця структура, ви можете розпакувати файл * .docx і виконати відповідність шаблону в отриманих структурах файлів XML.
Домінік

@Dominique, що цікаво. Не знали цього
codezombie

Відповіді:


12

як 'N / M' в текстовому документі, де N позначає десятковий, а M також показує інше десяткове число

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

Nb:, ^#- це один десятковий знак, тому якщо ви шукаєте спеціально для x / yy, це було б ^#/^#^#і т.д.

замінити,

Це кращий варіант: виконайте пошук із ([0-9])/([0-9])та замініть на нього \1.\2та увімкніть "використовувати символи"


Спасибі. це знаходить хіти. але Word не приймає ^ #. ^ # для замісної частини. Я хочу залишити цифри навколо "/" неушкодженими та замінити "/" на "."
codezombie

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

37

Слово

Використовуйте реалізацію регулярних виразів 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 Graham Mayor


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)
  • Замінити: .

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.