Ajuda para localizar e substituir expressões do Notepad ++

Ajuda para localizar e substituir expressões do Notepad ++

Quero encontrar todo o conteúdo entre dois caracteres, digamos Ae B:

Asd;lfksjd;fsdfjs;ldfkBqual seriasd;lfksjd;fsdfjs;ldfk

e substitua-os. Como eu escreveria essa expressão?

Responder1

Você pode combinar qualquer caractere entre A e B com o seguinte RegEx:

(?<=A).*(?=B)

Isso não retorna A ou B como parte dos caracteres correspondentes.

  • (?<=A)significa que A vem antes da expressão principal e que, se corresponder, você não deseja que seja incluído no resultado principal.

  • .*significa corresponder a qualquer caractere que ocorra 0 ou mais vezes. Se você quiser que pelo menos um único caractere fique entre A e B, você pode usar .+.

  • (?=B)significa que B vem depois da expressão principal e que, se corresponder, você não deseja que seja incluído no resultado principal.

Editar:

O Notepad++ não suporta lookahead/behind, então você pode substituir

(A).*(B)

com

\1\2

em vez de.

Observe que isso é ganancioso, então se tiver "AxB y AzB", você obterá "AB". Para obter "AB e AB", use

(A).*?(B)

em vez de.

*Editado não ganancioso, .?*estava incorreto

Responder2

Sou muito novo em expressões regulares, então espero que funcione para você.

Eu pensoA.*Bseria a expressão regular a ser pesquisada. Ou seja, procure A e B com zero ou mais coisas entre eles.

Esta expressão regular inclui A e B na correspondência, então você terá que adicioná-los novamente com a substituição.

AplaceBSeria o texto para substituí-lo.

insira a descrição da imagem aqui

informação relacionada