Notepad ++: Cómo eliminar texto después de una segunda aparición de coma usando Regex

0

Tengo líneas de texto como

string1,email,string2,string3

¿Cómo puedo usar regex para devolver lo siguiente?

string1,email

Quiero eliminar todo lo que viene después de la segunda coma.

Samuel
fuente

Respuestas:

4

Buscar:

^([^,]*,[^,]*),.*$

y reemplazar con

\1

Explicación:

^indica que el patrón debe coincidir desde el inicio de una línea.
[^,]*,es un texto que no incluye una coma, seguido de una coma. Dos de estos en una fila le dan los dos primeros elementos en su lista separada por comas.
.*$es todo lo demás en la línea.
\1devuelve todo lo que coincide con el patrón dentro de los paréntesis.

EDITAR en respuesta al comentario:

Para intercambiar el correo electrónico y la cadena1, use esto en su lugar:

Buscar:

^([^,]*),([^,]*),.*$

y reemplazar con:

\2,\1

Los números corresponden al orden de los grupos entre paréntesis en el patrón de búsqueda.

Excellll
fuente
1
Si pudiera agregar una explicación de cómo funciona esa expresión regular, sería más útil para otros en el futuro.
Bob
No me funcionó. Me estoy perdiendo de algo ? Por ejemplo, esta es una línea: Senchak, joanna.senchak @ gmail.com, Senchak, JoAnna
Samuel
@Samuel No tengo Notepad ++ en mi computadora, pero esto funciona en TextPad con una ligera modificación de sintaxis. ¿Qué configuración de expresiones regulares tiene en su lugar?
Excellll
Acabo de probarlo, funciona con la línea que proporcionó. Asegúrate de haber marcado "Regex match".
prateek61
Lo siento Excelll, sí, fue un problema de configuración. Funcionó bien en el modo de expresiones regulares. Muchas gracias por una solución tan rápida.
Samuel
0

Puedes hacer así:

  • En Notepad ++ presione Ctrl + F

  • Seleccionar pestaña: Reemplazar

  • Marcar la opción de expresión regular

  • Establecer en la búsqueda: (.*),email,(.*)

  • Reemplazar con: \1,email

Solo descansa para presionar el botón Reemplazar.

Adrioide
fuente
1
Está haciendo la probable suposición incorrecta de que emailes la misma cadena literal. Es probable que sea un correo electrónico real (por ejemplo [email protected], [email protected]) y diferente en cada línea.
Bob
Exactamente, es diferente en cada línea. ¿Alguna otra forma de solucionar este problema?
Samuel
entonces, la respuesta # 1 debería ser tu solución, funciona para mí.
Adrioide