Solución:
[^@]
significa “coincidir con un símbolo que sea no un @
firmar. Eso no es lo que está buscando – use lookbehind (?<[email protected])
por @
y tu (?=.)
anticipar .
para extraer el nombre del servidor en el medio:
(?<[email protected])[^.]+(?=.)
La parte media [^.]+
significa “uno o más caracteres sin puntos”.
Manifestación.
Respuesta actualizada:
Utilice un grupo de captura y mantenlo simple 🙂
@(w+)
Explicación dividiéndolo
(
grupo de captura para extracción )
w
representa el carácter de la palabra [A-Za-z0-9_]
+
es un cuantificador para uno o mas ocurrencias de w
Explicación y demostración de Regex en Regex101
Usé la expresión regular de la solución para mi tarea, pero me di cuenta de que algunos de los correos electrónicos no eran tan fáciles: [email protected]
, [email protected]
, y[email protected]
Para cualquiera que vino aquí queriendo el subdominio también (o está siendo cortado por él), aquí está la expresión regular:
(?<[email protected])[^.]*.[^.]*(?=.)