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.