Como pesquisar o texto por várias linhas e encontrar em ordem usando a expressão regular

0

Tentando descobrir a expressão regular a ser usada no Notepad ++, onde posso pesquisar o texto abaixo (como um exemplo) e encontrar os resultados em ordem.

Texto de exemplo:

{ USERECOVERDB 1 }

protocol to_nuance_orm_p5 {
{ AUTOSTART 1 }
{ DELAYCONNECT 0 }
{ HOST 198.92.118.168 }
{ IPV4_V6_DUAL 0 }
{ PDLTYPE tcp-client }
{ PORT 9014 }
{ PRIVATE_KEY {} }

Resultado desejado:

protocol to_nuance_orm_p5
HOST 198.92.118.168
PORT 9014
    
por Ron Ortiz 26.06.2014 / 14:42

2 respostas

1

O seguinte regex deve funcionar:

protocol [^ ]+|HOST \d+\.\d+\.\d+\.\d+|PORT \d+

Estou usando o Sublime Text para testá-lo, mas também deve funcionar no Notepad ++.

Veja como funciona: é composto de três partes:

  • protocol [^ ]+
  • HOST \d+\.\d+\.\d+\.\d+
  • PORT \d+
O símbolo

| significa que qualquer uma dessas partes pode ser correspondida.

Primeira parte: protocol [^ ]+

protocol (incluindo o espaço após l ) simplesmente corresponde à palavra protocol e ao espaço seguinte. [^ ] corresponde a um caractere não espacial e + significa corresponder a um ou mais símbolos anteriores, portanto, [^ ]+ corresponderá a um ou mais símbolos não espaciais.

Segunda parte: HOST \d+\.\d+\.\d+\.\d+

HOST corresponde ao texto como na primeira parte. Depois, há \d , que corresponde a um dígito e + , que tem o mesmo significado acima. \. corresponderá a pontos regulares. Ao contrário das letras, um ponto deve ser precedido por uma barra invertida, porque tem um significado especial nas expressões regulares.

A terceira parte é ainda mais simples que a segunda, por isso não acho que sejam necessárias explicações.

Se você quiser saber mais sobre expressões regulares, este tutorial é muito bom e aqui é um bom testador / depurador de regex .

    
por 07.07.2014 / 17:53
0

Se você quiser apenas encontrar todo o texto no formato:

** TEXT ** 

tente isto:

\*\*.*\*\*
    
por 03.07.2014 / 11:52