Correspondência gananciosa na expressão regular do MS Word?

2

Eu preciso limpar algumas tabelas no Word, onde o ponto-e-vírgula e o texto após eles são redundantes, por exemplo

text1 ; text 2

onde acima é um conteúdo de uma célula e eu preciso remover ponto-e-vírgula e tudo depois dela até o final da célula ; infelizmente, o texto 2 não possui nenhum padrão específico.

Eu tento fazer isso com o built-in do Word e substituo usando o regex.

Como o final desejado da minha expressão regular é o fim da célula, não consigo corresponder, tentei várias combinações de qualquer caractere ;?* ;* ;?@ mas todas as paradas em o menor texto correspondente , existe uma maneira de fazer com que ele corresponda até o final da célula?

    
por Máté Juhász 30.10.2015 / 12:08

3 respostas

3

Isso parece estar funcionando:

;[!¤]{1,}

Eu usei o sinal de moeda genérica ¤ , você pode usar qualquer outro símbolo que tenha certeza de que não está incluído no texto após o ponto-e-vírgula (talvez seja ponto-e-vírgula).

Apenas uma nota: deixar o segundo limite de chaves entre parênteses não significa uma cadeia infinita, descobri por teste que a extensão está limitada a 255 caracteres.

    
por 03.11.2015 / 10:56
0

Eu preciso remover o ponto-e-vírgula e tudo depois dele

Use a seguinte expressão regular:

;?{1,9999}^13
  • {n,m} corresponde de n a m ocorrências do caractere ou expressão anterior
  • ^13 corresponde a uma quebra de parágrafo

Fonte Encontre e substitua texto usando expressões regulares (Avançado)

    
por 30.10.2015 / 13:32
0

Copie sua tabela em outro lugar; converta para texto ( Layout / Converter para texto ) e escolha Paragraph delimiter .

Continue substituindo ;*^13 por ^9 , com Use wildcards marcado. Cortar este bloco de texto.

Selecione todo o texto na tabela original e a pasta "somente texto".

    
por 30.10.2015 / 16:24