Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

191
Vistas
RegEx extrae una subcadena del archivo de registro

Estoy trabajando con JavaScript y necesito analizar un archivo de registro para extraer una subcadena.

Este es un ejemplo de mi archivo de registro:

 Feb 04 11:20:48 info: VPN disconnected: admin @ 6051:abcdefgh [NB017] (duration: 00:05:32) Feb 04 12:59:21 info: VPN connected: admin @ 6051:abcdefgh [NB017] Feb 04 12:59:21 info: Connected to 123.123.123.123 (TLS) Feb 04 12:59:21 info: Data tunnel connected: Feb 04 12:59:21 info: Data tunnel operational! Feb 04 12:59:53 info: VPN disconnected: admin @ 6051:abcdefgh [NB017] (duration: 00:00:32) Feb 04 13:01:03 info: VPN connected: admin @ 6051:abcdefgh [NB017] Feb 04 13:01:03 info: Connected to 123.123.123.123 (TLS) Feb 04 13:01:03 info: Data tunnel connected: Feb 04 13:01:03 info: Data tunnel operational! Feb 04 13:01:35 info: VPN disconnected: admin @ 6051:abcdefgh [NB017] (duration: 00:00:40) Feb 04 13:49:26 info: VPN connected: admin @ 6051:abcdefgh [NB017] Feb 04 13:49:27 info: VPN disconnected: admin @ 6051:abcdefgh [NB017] (duration: 00:00:09) Feb 04 13:50:06 info: VPN connected: admin @ 6051:abcdefgh [NB017] Feb 04 13:50:06 info: Connected to 123.123.123.123 (TLS) Feb 04 13:50:06 info: Data tunnel connected: Feb 04 13:50:07 info: Data tunnel operational! Feb 04 15:37:57 info: (Log Displayed)

Necesito extraer el usuario que realizó la última conexión ya que hay varias conexiones en el registro.

Por ejemplo, a partir de "VPN conectado:" hasta el último "]".

Probé con este RegEx

 VPN connected([^.]+)]

pero JS devuelve varios registros cuando solo necesito el último.

¿Cómo puedo mejorar mi RegEx?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede resolver este problema tomando el último grupo de captura de la matriz de JavaScript resultante o modificando su RegEx:

(VPN connected[^\]]+\])(?![\s\S]*\1)

En primer lugar, creo que desea capturar cada línea de VPN connected por separado:

VPN connected[^\]]+\]

Esto comenzará con "VPN conectado" y se detendrá con el siguiente paréntesis de cierre.

Luego agregué un grupo de anticipación negativo (indicado por ?! ). El grupo busca cualquier espacio en blanco y que no sea un espacio en blanco seguido de nuestro primer grupo de captura. La anticipación negativa asegurará que no tengamos otra coincidencia después de nuestra primera coincidencia. Esto da como resultado que nuestro primer partido sea el último :-)

Editar: explicación aclarada para el primer grupo de captura

Edit2: como desea tener el usuario, puede expandir RegEx a algo como esto:

(VPN connected: (\w+)[^\]]+\])(?![\s\S]*\1)

El usuario debe encontrarse en el segundo grupo.

Nota : Puede haber algunos ajustes necesarios en función de los caracteres permitidos en el nombre del usuario.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda