Notepad ++ localizar e substituir ajuda de expressão

3

Eu quero encontrar todo o conteúdo entre dois caracteres, digamos A e B :

Asd;lfksjd;fsdfjs;ldfkB , que seria sd;lfksjd;fsdfjs;ldfk

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

    
por meiryo 09.04.2011 / 09:46

2 respostas

2

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 ela corresponder, você não a incluirá no resultado principal.

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

  • (?=B) significa que B vem depois da expressão principal e que, se ela corresponder, você não a incluirá no resultado principal.

Editar:

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

(A).*(B)

com


em vez disso.

Note que isto é ganancioso, por isso, se tiver "AxB y AzB", receberá "AB". Para obter "AB y AB", use

(A).*?(B)

em vez disso.

* Não-vorazes editados, .?* estava incorreto

    
por 09.04.2011 / 10:29
2

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

Acho que A. * B seria a expressão regular a ser pesquisada. Ou seja, procure por A e B com zero ou mais coisas entre eles.

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

AreplaceB Seria o texto para substituí-lo por.

    
por 09.04.2011 / 10:17