Extraiga y muestre solo el año de cada línea en Notepad ++ usando expresiones regulares

Extraiga y muestre solo el año de cada línea en Notepad ++ usando expresiones regulares

tengo cuerdas asi

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) £$"£

Quiero mostrar en Notepad++

2005
2007
2002
1986
1997
1979

Utilizo esta expresión regular pero parece que no funciona bien.

ENCONTRAR:

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

REEMPLAZAR

r\n\1\1

Pero me devuelve un 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
..

Entonces esta expresión regular no funciona como se esperaba

Respuesta1

Siga las instrucciones a continuación al presionar Ctrl+ HdesdeBloc de notas++para hacer coincidir un grupo de números de 4 dígitos por cada línea e imprimir solo esos caracteres que le brinden los resultados esperados.

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

    ingrese la descripción de la imagen aquí

  2. Reemplazar con: $1

  3. Modo de búsqueda: Regular expression
  4. PrensaReplace All

Resultados

2005
2007
2002
1986
1997
1979

ingrese la descripción de la imagen aquí


Recursos adicionales

Cómo utilizar expresiones regulares en Notepad++

Anclas

Los anclajes coinciden con una posición en la línea, en lugar de con un carácter en particular.

^

Esto coincide con el inicio de una línea (excepto cuando se usa dentro de un conjunto, ver arriba).

$

Esto coincide con el final de una línea.

Rangos o tipos de caracteres

[^...]

El complemento de los personajes del set.

Coincidencias de un solo carácter

., \c

Coincide con cualquier personaje. Si marca la casilla que dice ". coincide con una nueva línea", el punto efectivamente lo hará, permitiendo que el carácter "cualquiera" se ejecute en varias líneas. Con la opción desmarcada, entonces. sólo coincidirá con los caracteres dentro de una línea, y no con los caracteres que finalizan la línea (\r y \n)

Operadores multiplicadores

*

Esto coincide con 0 o más instancias del carácter anterior, tantas como pueda. Por ejemplo, Sa*m coincide con Sm, Sam, Saam, etc.

*?

Cero o más del grupo anterior, pero mínimamente: la cadena coincidente más corta, en lugar de la cadena más larga como ocurre con el operador * "codicioso". Por lo tanto, m.*?o aplicado al texto margin-bottom: 0; coincidirá con margen-bo, mientras que m.*o coincidirá con margen-botto.

{n}

Coincide con n copias del elemento al que se aplica.

+

Esto coincide con 1 o más instancias del carácter anterior, tantas como pueda.

Grupos

(...)

Los paréntesis marcan un subconjunto de la expresión regular. La cadena que coincide con el contenido del paréntesis ( )se puede reutilizar como referencia inversa o como parte de una operación de reemplazo; consulte Sustituciones, a continuación.

Los grupos pueden estar anidados.

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

Rangos o tipos de caracteres

\d

Un dígito en el rango 0-9, igual que[[:dígito:]].


Sustituciones

$n, ${n}, \n

Devuelve lo que coincidió con la subexpresión numerada n. No se permiten índices negativos.

Respuesta2

  • Ctrl+H
  • Encontrar que:^(?:.*?\(((?:19|20)\d{2})\).*|.*\R)$
  • Reemplazar con:$1
  • comprobar Envolver alrededor
  • comprobar expresión regular
  • NO VERIFICAR. matches newline
  • Replace all

Explicación:

^                   : 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 una 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

Tenemos:

2005
2007
2002
1986
1997
1979

información relacionada