regex delete line contém resultado na palavra office 2013

0

Eu tenho um documento na palavra. Meus parágrafos como:

asdfasdfasdf
abcYear052014
asdfasdfasdf
acbYear122013

Eu quero apagar linha xxxYearyyyy assim no notepad + + eu coloquei

.*[0-9]201[0-9]$

e substitua por branco. Por isso, apague a linha que contém o resultado. Mas quando eu tento no microsoft office 2013, ele não consegue encontrar nada, apesar de fazer check-in 'use curinga'.

Porque meu arquivo de palavras tem um texto em negrito, então devo fazer no escritório. Acho que o microsoft office não é bom em encontrar regex: (

Alguma ideia ou solução?

Obrigado por me ajudar.

Respeito

    
por SevenT 15.01.2015 / 16:49

3 respostas

0

Eu descobri.

Pode substituir todo o parágrafo ou linha.

Para o meu exemplo:

abcd abcd xxx1234 efgh asdf

Por isso, marquei a caixa "usar um curinga" no departamento de pesquisa.

Na caixa de pesquisa:

^13*xxx[0-9]{4,}*^13

Na caixa de substituição:

^p

(para excluir a linha ou parágrafo) ou

^p(something you want to replace)^p

Então

^ 13 digite a nova linha (use somente na caixa de busca quando usar o curinga não substitua - se você precisar, deve usar ^ p) ^ p entra na nova linha (pode ser usado tanto encontrar quanto substituir em ambos, usar wild card ou normal) * qualquer personagem xxx [0-9] {4,} xxx e número de 0-9 e deve ter 4 dígitos acima

Espero que ajude

Obrigado a dois rapazes acima

    
por 25.02.2015 / 15:18
2

O MS Office não suporta expressões regulares como o editor de código-fonte, como o Notepad ++.

Você pode tentar isso, mas não funciona totalmente:

<*201[0-9]>

Aqui está a ajuda do MS que discute curingas e expressões regulares no MS Office.

link

    
por 16.01.2015 / 17:09
1

O regex do MS Word carece seriamente de funcionalidade. Se você realmente precisa ficar na palavra (e não consegue encontrar outro editor que ambos tem um bom suporte de regex e retém a marcação do MS Word), eu encontrei uma possível solução para você usando a palavra regex:

1) Prefixo toda linha com um caracter que você sabe que não aparece em seu texto. Diga "#". Você teria:

#asdfasdfasdf
#abcYear052014
#asdfasdfasdf
#acbYear122013

2) Agora, faça uma pesquisa "regex" e substitua pela seguinte regex, que encontrará as linhas 2 e 4 nesta lista:

#[!#]@[0-9]201[0-9]

(Leia: tudo que começa com "#", então tem um ou mais caracteres (@) que não são "#", então tem um dígito, depois 201 e depois um dígito novamente.)

3) Após a pesquisa / substituição, basta pesquisar / substituir novamente e substituir todo o # por nada.

Você provavelmente também poderia trabalhar com uma macro VisualBasic para a palavra, um Google rápido mostra que o VB tem regex. Outro Google mostra que alguém no Stack Overflow já fez algo assim, aparentemente: link

Outra opção seria escrever um script pequeno, como um script AHK ou AU3, que simula os pressionamentos de teclas que: 1. pressione para baixo, 2. pressione home - shift + end - ctrl + c (linha de cópia), 3. pegue a linha da área de transferência e teste-a com o seu regex, 4. pressione delete se a linha se encaixa no regex. Eu não estou 100% certo de que acima iria trabalhar com todas as possibilidades exóticas para a marcação do MS Word, mas se for apenas linhas em negrito, deve funcionar.

    
por 16.01.2015 / 17:49