Quiero eliminar los nombres de usuario duplicados en las líneas anteriores al divisor y conservar solo la primera línea de estos nombres de usuario.
Ejemplo de líneas:
zzzz:000000zl
zzzz:000000zl!
zzzz:000000zl1
zzzz:000000zl123
zzzz:000000zl69
zzzz:000000zl?
AdSFF12:Sample198445
AdSFF12:Sample198445!
AdSFF12:Sample198445#
AdSFF12:Sample198445$
AdSFF12:Sample1984456
TestOf13:Smpletest1211
TestOf13:Smpletest1211!
TestOf13:Smpletest1211#
TestOf13:Smpletest1211$
TestOf13:Smpletest12112
TestOf13:Smpletest561
TestOf13:Smpletest561!
TestOf13:Smpletest561#
TestOf13:Smpletest561$
TestOf13:Smpletest5612
TestOf13:SmpletestZ2
TestOf13:SmpletestZ2!
TestOf13:SmpletestZ2#
TestOf13:SmpletestZ2$
TestOf13:SmpletestZ23
TestOf13:Smpletestz3qwe
TestOf13:Smpletestz3qwe!
TestOf13:Smpletestz3qwe1
TestOf13:Smpletestz3qwe123
TestOf13:Smpletestz3qwe69
TestOf13:Smpletestz3qwe?
Resultado necesario:
zzzz:000000zl
AdSFF12:Sample198445
TestOf13:Smpletest1211
Tu ayuda será muy apreciada, gracias de antemano <3.
Respuesta1
- Ctrl+H
- Encontrar que:
^((.*?:).+\R)(\2.+\R)+
- Reemplazar con:
$1
- CONTROLAR Envolver alrededor
- CONTROLAR Expresión regular
- DESMARCAR
. matches newline
- Replace all
Explicación:
^ # beginning of line
( # start group 1
( # start group 2
.*? # 0 or more any character but newline, not greedy
: # a colon
) # end group 2
.+ # 0 or more any character but newline
\R # any kind of linebreak (i.e. \r, \n, \r\n)
) # end group 1
( # group 3, you can use (?: for non capture group
\2 # back reference to group 2 (i.e. the part before the colon)
.+ # 0 or more any character but newline
\R # any kind of linebreak (i.e. \r, \n, \r\n)
)+ # end of group 3, may appear 0 or more times
Reemplazo:
$1 # content of group 1, the value of the first line
Captura de pantalla (antes):
Captura de pantalla (después):