
Quero encontrar todo o conteúdo entre dois caracteres, digamos A
e B
:
Asd;lfksjd;fsdfjs;ldfkB
qual 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.