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.
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.
\1
devuelve 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.
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,(.*)
\1,email
Solo descansa para presionar el botón Reemplazar.
fuente
email
es 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.