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

178
Vistas
Eliminar puerto y mantener el host

Tengo una URL como la siguiente

 https://www.aaaa.com:5000 -> https://www.aaaa.com https://bbbb.com:443 -> https://bbbb.com https://cccc.com -> https://cccc.com

Necesito quitar solo el puerto ..

He intentado con lo siguiente que no funciona, toma todos los datos

https://regex101.com/r/CIiALR/1

 (https?://.*):(\d*)\/?(.*)`

El truco es que debo usar solo expresiones regulares, no js lib, ya que lo necesito para usar Vector.

https://vector.dev/docs/reference/vrl/

También: https://vector.dev/docs/reference/vrl/#parse-custom-logs

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

0

No hay necesidad de expresiones regulares, puede usar el objeto url para este tipo de trabajo.

 var url = new URL('https://www.aaaa.com:5000'); url.port = ''; console.log(url.toString());

Más información sobre el objeto URL: https://developer.mozilla.org/en-US/docs/Web/API/URL

about 4 years ago · Juan Pablo Isaza Denunciar

0

Mirando https://vector.dev/docs/reference/vrl/ puede usar un grupo de captura con nombre y, opcionalmente, hacer coincidir el número de puerto:

 ^(?P<withoutport>https?://[^/\s]+?)(?::\d+|$)
  • ^ Comienzo de cadena
  • (?P<withoutport> Grupo con nombre
    • https?:// Coincide con el protocolo
    • [^/\s]+? Coincide con cualquier carácter excepto / o un carácter de espacio en blanco de una manera no codiciosa
  • ) Cerrar grupo con nombre
  • (?::\d+|$) Hacer coincidir : y 1+ dígitos, o afirmar el final de la cadena

Demostración de expresiones regulares

O puede hacerlo tan específico como lo requiera:

 ^(?P<withoutport>https?://[^/\s]+?)(?:[:?#/]\S*)?$

Demostración de expresiones regulares

about 4 years ago · Juan Pablo Isaza Denunciar

0

Dependiendo de la versión del vector que esté utilizando, sugeriría usar la función integrada parse_url para extraer las partes que desea.

Ejemplo TOML:

 [sources.my_demo_logs_source] type = "demo_logs" format = "shuffle" lines = [ "https://www.aaaa.com:5000" , "https://bbbb.com:443", "https://cccc.com" ] [transforms.my_transform] type = "remap" inputs = [ "my_demo_logs_source" ] source = """ url_parts = parse_url!(.message) .url = join!([ url_parts.scheme, url_parts.host ], "://") """ [sinks.my_sink_id] type = "console" inputs = [ "my_transform" ] target = "stdout" [sinks.my_sink_id.encoding] codec = "json"

Salida de ejemplo:

 {"message":"https://bbbb.com:443","source_type":"demo_logs","timestamp":"2022-06-28T07:20:45.202665432Z","url":"https://bbbb.com"} {"message":"https://www.aaaa.com:5000","source_type":"demo_logs","timestamp":"2022-06-28T07:20:46.202754200Z","url":"https://www.aaaa.com"} {"message":"https://cccc.com","source_type":"demo_logs","timestamp":"2022-06-28T07:20:47.201350600Z","url":"https://cccc.com"}

Esto fue probado con:

 ❯ vector --version vector 0.22.0 (x86_64-unknown-linux-gnu 5e937e3 2022-06-01)
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