Notepad ++ regex - números

0

Eu tentei pesquisar e experimentar, mas não consegui descobrir.

No notepad ++ eu tenho uma linha como:

102.

ou

12

e eu gostaria de excluir a linha inteira (então eu precisaria \ n \ r eu acho) e todos esses tipos de linhas, como eu poderia fazer isso? (Eu não sei se é um decimal, dois decimais ou três decimais ou se tem um ponto depois ou não).

    
por beemspam 30.07.2014 / 13:32

1 resposta

0

Eu não estou 100% claro sobre quais são os seus requisitos (isto é, qual o conteúdo possível das linhas a serem excluídas), mas eu fiz uma regex saindo da suposição de que a linha começa com entre 1 e 3 números, seguidos por um ponto final opcional e sem mais nada na linha (início ou fim).

Encontre o que: ^\d{1,3}\.?\r?\n?

Substitua por: (em branco)

Testado no seguinte conjunto de dados

102.
102
12
12
1.
1
9999
ab21.
8442.

que deixa para trás

9999
ab21.
8442.

Explicação

^ é um caractere especial que corresponde apenas ao início da linha. Isso é apenas para garantir que o padrão não esteja simplesmente no final de uma linha mais longa.

\d é usado para corresponder a qualquer valor numérico (ou seja, 0-9).

{1,3} é usado para modificar a instrução anterior (neste caso, \d ) e é usado para especificar o número mínimo e máximo de vezes que você deseja que a instrução corresponda. Portanto, esta linha diz que você deseja corresponder um número entre 1 e 3 vezes (inclusive).

\. é usado para corresponder ao caractere de ponto. . é um caractere especial em regex, usado para corresponder a qualquer caractere (exceto uma nova linha por padrão, embora haja uma opção no Notepad ++ para alterar esse comportamento). Devido a isso, precisamos escapar com uma barra invertida para ter certeza de que é tomado como . "o caractere" e não . "o padrão de correspondência".

? é usado para modificar a última declaração similar a {1,3} , mas desta vez é usado para dizer que a declaração anterior ( [.] ) é opcional (tecnicamente ela diz para combinar entre 0 e 1 vezes , mas o resultado final é o mesmo).

\r?\n? é usado para corresponder à nova linha, como você mencionou anteriormente. O regex funcionaria sem isso, mas não removeria a linha, apenas a limparia (deixando uma linha em branco para trás). Ao tornar os dois \r e \n opcionais, isso se tornará portátil em Windows, Linux e Mac.

Por fim, a razão pela qual deixamos o campo Replace with : em branco é simplesmente pelo fato de não querermos que nada retorne à linha que estamos excluindo.

Espero que seja isso o que você estava procurando e, se não, aponta na direção certa.

    
por 30.07.2014 / 13:52