Extraia e exiba apenas o ano de cada linha no Notepad++ usando regex

Extraia e exiba apenas o ano de cada linha no Notepad++ usando regex

Eu tenho cordas assim

hack SIGN (2005) g$
5 Cm Per Second - Makoto Shinkai Collection (2007)
Abenobashi (2002) gd
Ai City - La Notte Dei Cloni (1986) dfg
AIKA (1997)
Anna Dai Capelli Rossi (1979) £$"£

Quero exibir no Notepad++

2005
2007
2002
1986
1997
1979

Eu uso esse regex, mas parece que não funciona bem

ENCONTRAR:

\(\b(19|20)\d{2}\b\)

SUBSTITUIR

r\n\1\1

Mas ele me retorna um texto como este

hack SIGN r
2020 g$
5 Cm Per Second - Makoto Shinkai Collection r
2020
Abenobashi r
2020 gd
Ai City - La Notte Dei Cloni r
1919 dfg
..

Então esse regex não funciona como esperado

Responder1

Siga as instruções abaixo ao pressionar Ctrl+ HdeBloco de notas++para corresponder a um grupo de números de 4 dígitos por cada linha e imprimir apenas esses caracteres, fornecendo os resultados esperados.

  1. Encontre o que: ^.*?(\d{4}+).*$

    insira a descrição da imagem aqui

  2. Substituir com: $1

  3. Modo de pesquisa: Regular expression
  4. ImprensaReplace All

Resultados

2005
2007
2002
1986
1997
1979

insira a descrição da imagem aqui


Recursos adicionais

Como usar expressões regulares no Notepad++

Âncoras

As âncoras correspondem a uma posição na linha, em vez de a um caractere específico.

^

Corresponde ao início de uma linha (exceto quando usado dentro de um conjunto, veja acima).

$

Isso corresponde ao final de uma linha.

Intervalos ou tipos de caracteres

[^...]

O complemento dos personagens do conjunto.

Correspondências de um único caractere

., \c

Combina com qualquer personagem. Se você marcar a caixa que diz ".corresponde à nova linha", o ponto realmente fará isso, permitindo que o caractere "qualquer" seja executado em várias linhas. Com a opção desmarcada, então . corresponderá apenas aos caracteres dentro de uma linha, e não aos caracteres de final de linha (\r e \n)

Multiplicando operadores

*

Corresponde a 0 ou mais instâncias do caractere anterior, tantas quanto possível. Por exemplo, Sa*m corresponde a Sm, Sam, Saam e assim por diante.

*?

Zero ou mais do grupo anterior, mas minimamente: a string correspondente mais curta, em vez da string mais longa como acontece com o operador "ganancioso" *. Assim, m.*?o aplicado ao texto margin-bottom: 0; corresponderá a margin-bo, enquanto m.*o corresponderá a margin-botto.

{n}

Corresponde a n cópias do elemento ao qual se aplica.

+

Isso corresponde a 1 ou mais instâncias do personagem anterior, tantas quanto possível.

Grupos

(...)

Os parênteses marcam um subconjunto da expressão regular. A string correspondida pelo conteúdo dos parênteses ( )pode ser reutilizada como uma referência anterior ou como parte de uma operação de substituição; veja Substituições, abaixo.

Os grupos podem ser aninhados.

(?<some name>...), (?'some name'...),(?(some name)...)

Intervalos ou tipos de caracteres

\d

Um dígito no intervalo de 0 a 9, igual a[[:dígito:]].


Substituições

$n, ${n}, \n

Retorna o que corresponde à subexpressão numerada n. Índices negativos não são permitidos.

Responder2

  • Ctrl+H
  • Encontre o que:^(?:.*?\(((?:19|20)\d{2})\).*|.*\R)$
  • Substituir com:$1
  • confira Envolver
  • verifique expressão regular
  • NÃO VERIFIQUE. matches newline
  • Replace all

Explicação:

^                   : beginning of line
  (?:               : start non capture group
    .*?             : 0 or more any character but newline, not greedy
    \(              : open parenthesis
      (             : start group 1
        (?:19|20)   : non capture group, 19 or 20
        \d{2}       : 2 digits
      )             : end group 1
    \)              : close parenthesis
    .*              : 0 or more any character but newline
   |                : OR
    .*              : 0 or more any character but newline
    \R?             : any kind of linebreak, optional
  )                 : end non capture group
$                   : end of line

Dada uma entrada como:

hack SIGN (2005) g$
5 Cm Per Second - Makoto Shinkai Collection (2007)
Abenobashi (2002) gd
Ai City - La Notte Dei Cloni (1986) dfg
AIKA (1997)
Anna Dai Capelli Rossi (1979) £$"£
123456 1234
(123) 4567

Obtemos:

2005
2007
2002
1986
1997
1979

informação relacionada