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.

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.


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.


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 a@example.com, b@example.com) 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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.