Existe uma maneira de procurar um padrão em um documento do MS Word?

26

Existe uma maneira de procurar padrões dentro de um documento do MS Word em vez de uma correspondência exata?

Eu tenho um documento onde todos os decimais foram escritos como / em vez de . . Por exemplo, 1.02 foi escrito como 1/02 , porque a tipografia persa usa / em vez de . para o ponto decimal.

Como / não é usado apenas para decimais, e tem outras aplicações, por exemplo, frações, porcentagem, etc., existe uma maneira de encontrar um padrão como N/M dentro de um documento do word, onde N indica um decimal e M também mostra outro número decimal?

    
por codezombie 30.11.2014 / 07:50

2 respostas

12

like 'N/M' within a word document, where N denotes a decimal and M also shows another decimal number

Apenas para uma pesquisa, você pode usar ^#/^# como seu parâmetro de pesquisa. Nas opções mais e encontre Especial , existem outras opções que podem ser úteis.

Nb: ^# , tem uma casa decimal, portanto, se você estiver procurando especificamente x / yy, então seria ^#/^#^# etc.

para substituir,

Esta é uma opção melhor, execute a pesquisa com ([0-9])/([0-9]) e substitua por . e ative "usar curingas"

    
por 30.11.2014 / 08:20
31

Word

Use a implementação de expressões regulares da Microsoft

Pressione CTRL + H »clique em Mais » Ativar Usar curingas

  • Encontre o que: ([0-9]{1,2})/([0-9]{2})
  • Substituir por: .

Isso parece um padrão de pesquisa maluco, então vamos examiná-lo:

  • [0-9] representa um único valor numérico (0,1,2,3,4,5,6,7,8 e 9)
  • {1,2} é usado para contar ocorrências do caractere ou expressão anterior. No nosso caso, isso significa: Pesquise apenas um ou dois valores numéricos .

    Cuidado: se você estiver usando um Word em alemão, precisará usar ; como separador em vez de ,

  • / não tem significado especial. Ele literalmente procura uma barra
  • () os parênteses são importantes. Eles dividem o padrão em seqüências lógicas para que possamos usar , ... \n em nosso padrão de substituição. Desta forma, preservamos os valores

Leia mais sobre a seção As expressões, peça por peça no artigo de suporte da Microsoft ou em Site Word do Graham Mayor

VBA (melhor solução)

Sugiro que você use um método VBA que adira mais ao padrão de outros mecanismos RegEx. Eles são melhor documentados e mais pessoas podem ajudá-lo.

Esta macro pede que um padrão RegEx pesquise no documento inteiro e substitua-o por sua string dada.

Pressione ALT + F11 para abrir o editor do VBA. Cole o código em qualquer lugar e execute-o com 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
  • Encontre o que: (?!\d)/(?=\d)
  • Substituir por: .

    
por 30.11.2014 / 10:16