Substituindo texto no Word usando REGEX. « André Brum
Há algum tempo precisei manipular algumas informações em um arquivo de Word para poder importa-lo para um sistema próprio, porém a quantidade de alterações que teria que fazer para que ficasse compatível era bem grande e levaria tempo e paciência. Bom, paciência eu tenho bastante, mas o tempo anda bem curto, então precisava de alguma forma agilizar esse processo. Meu primeiro pensamento foi o de usar expressões regulares (REGEX), porque usava em programação. Observando o sistema de busca e substituição do Word, vi que ele aceitava, de forma limitada, o uso de REGEX.
As expressões regulares são um tipo de linguagem que usa padrões para descrever aquilo que está sendo buscado. Quando uma busca for iniciada, usando REGEX, o que será procurado é algo que se encaixe naquele padrão informado. No Word, existem alguns "caracteres curingas" que podem ser usados para realizar buscas assim e para usar você deve abrir a caixa "Localizar e substituir" e clicar no botão "Mais >>" para acessar as opções avançadas de localização.
Em seguida marque a caixa de seleção "Usar caracteres curinga".
Agora você já pode realizar a busca baseada em algum padrão. É verdade que o uso é limitado à alguns padrões pré-determinados, mas pode quebrar um galho em algumas necessidades específicas. Para acessar o conjunto de padrões, você deve clicar no botão "Especial". Ao clicar, uma lista com os "caracteres curinga" disponíveis será exibida. Atenção: Se a opção não for marcada, o botão "Especial" exibirá outro tipo de informação.
Segue abaixo uma tabela com a explicação de cada caractere curinga, que retirei de um fórum da Microsoft.
Como exemplo, digamos que tivéssemos uma lista gigante de identificadores e precisássemos identificar alguns que seguisses determinado padrão. Então vamos procurar seguindo as inforações abaixo:
1- Queremos os identificadores que iniciam com um número de dois dígitos (01,02,03), para isso usaremos o padrão ([0-9]{2}) que quer dizer que procuramos um conjunto de 2 dígitos com duas casas – 00 até 99;
2- Um "." (Queremos literalmente um ponto);
3- Uma sequência de caracteres específicos, no nosso caso (003). Essa sequencia é literal, ou seja, tem que ser 003;
4- Uma "/" (Queremos literalmente uma barra);
5- Uma sequência de caracteres que representa um ano qualquer (2019/2020/2018), para isso usaremos ([0-9]{4});
6 Um "-" literal que separa o código verificado das sequências do exemplo e para isso podemos usar a mesma expressão do início: ([0-9]{2}).
Assim temos ([0-9]{2}).(003)/([0-9]{4})-([0-9]{2})
Ao executar a busca com essa expressão e seguindo as instruções do tutorial, conforme mostrado na figura abaixo, você vai localizar as sequências que se encaixarem na descrição feita pelo padrão. Destaquei elas em negrito.
01.003/2018-01, 01.005/2020-01, 02.003/2020-01, 03.005/2019-01, 01.003/2020-02, 03.003/2020-01, 01.003/2018-01, 01.003/2018-02
Se quiséssemos especificar a sequência final para 02, por exemplo ficaria assim ([0-9]{2}).(003)/([0-9]{4})(-02) e as sequências identificadas seriam:
Faça o teste!! E experimente outras coisas, como por exemplo mudar a formatação dos itens encontrados de uma só vez.