Usando o Notepad++ Regex para remover âncoras

Usando o Notepad++ Regex para remover âncoras

Tentei procurar outras respostas para isso e meu cérebro explode quando tento ler qualquer coisa no Regex, simplesmente não consigo compreender, não importa quantas vezes eu leia ou quão devagar.

Estou tentando remover isso de um arquivo usando o Notepad++:

<a style="text-decoration:none" href="/SOME RANDOM WORD">.</a>

Mas não tenho certeza de qual string de pesquisa regex preciso usar no Notepad++ para fazer isso. Onde está ALGUMA PALAVRA ALEATÓRIA, pode ser literalmente qualquer coisa de qualquer comprimento, mas o início e o fechamento da tag/página em que está é o mesmo.

Eu só quero remover qualquer instância de

<a style="text-decoration:none" href="/SOME RANDOM WORD">.</a>

e substitua-o por nada.

Responder1

Na linha Localizar, insira o seguinte:

<a style="text-decoration:none" href=".+">\.</a>

Substitua por: deixe em branco.

Em seguida, clique em Substituir tudo.

A chave aqui é usar .+o que significa encontrar um caractere de qualquer coisa ou mais. Basicamente, isso significa que qualquer URL que tenha o texto idêntico, mas com qualquer URL, será encontrada e substituída. com nada. É possível filtrar o URL ou outras coisas, mas como sua postagem especificou que você deseja substituir a string inteira por nada, esta informação não foi fornecida para não confundi-lo ainda mais.

Certifique-se de selecionar Expressão Regular na parte inferior, mas acho que você já pensou nisso.

Além disso, você precisa escapar de caracteres especiais, como . Se seus links tiverem texto real em vez de ., você também deverá substituí- \.lo .+.

Responder2

Estou enviando outra resposta, não porque queira prejudicar a resposta aceita, o que é muito boa, mas porque sua expressão de pesquisa estava quase correta.

A confusão é que em máscaras de arquivo *significa uma string arbitrária de qualquer comprimento (incluindo zero), enquanto em expressões regulares significa qualquer número de ocorrências do padrão anterior. Então o que você pediu foi uma string contendo qualquer número de barras (apenas) entre as aspas da href=cláusula.

O que você precisava estava href="/.*"na sua expressão de pesquisa, e isso usa a outra grande diferença entre máscaras de arquivo, onde ?corresponde a qualquer caractere único, e expressões regulares, onde .é usado, fornecendo .*qualquer número de caracteres arbitrários.

O uso diferente de .significa que >.</a>no final da sua expressão de pesquisa significa que qualquer caractere entre >e </a>corresponderá: para corresponder apenas a um literal, .você precisa informar à expressão de pesquisa que deseja combiná-la com um literal .e fazer isso precedendo o .com o chamadoescaparpersonagem \. Assim, \.corresponde a um literal .e \*corresponde a um literal *.

Sua string de pesquisa teria funcionado perfeitamente se as expressões regulares usassem as mesmas correspondências que as máscaras de arquivo, mas infelizmente não o fazem, e o que você precisa é:

<a style="text-decoration:none" href="/.*">\.</a>

Como você pode ver, é muito pouco diferente do que você tentou, com apenas dois caracteres extras (mas críticos), mas espero que minha explicação possa lhe dar confiança para prosseguir com eles: você certamente precisará deles novamente.

Não posso negar que são proibitivos e não posso recomendar uma maneira fácil de entrar, embora você possa achareste testadorútil (embora seja tratado /como um caractere especial que precisa ser precedido pelo caractere de escape \- isso acontece em alguns contextos, mas não no seu, então permita isso se você tentar em sua expressão de pesquisa).

Não desanime porque as expressões parecem absurdas: tenho trabalhado com elas há anos e ainda há muitas que estão além da minha compreensão, especialmente a verificação de números binários que são múltiplos de 3 noPágina da Wikipédia- Encontrei explicações, mas mesmo sendo formado em matemática não consigo entender detalhadamente a expressão.

Você entende as máscaras de arquivo e, ao usar as modificações simples necessárias para expressões regulares, você tem um ponto de partida.

informação relacionada