Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

314
Visualizações
Extraiga la URL hasta el espacio en blanco o la etiqueta <br> usando Regex con Javascript

Tengo una cadena como:

 Webcam recording https://www.example.com/?id=456&code=123

o como:

 Webcam recording https://www.example.com/?id=456&code=123<br><b>test<b>

Para extraer la URL del primer ejemplo que usé: var reg_exUrl = /\bhttps?:\/\/[^ ]+/g;

Ahora traté de extender Regex para que tome la primera coincidencia hasta el espacio en blanco (final de línea) o la etiqueta <br> .

Este fue mi intento:

 var reg_exUrl = /\b(https?:\/\/[^ ]+)(\<br\>)/g;

Lo que se ve bien en https://regex101.com/r/gudNab/1 y aparece como dos coincidencias diferentes.

Pero al usar Regex en Javascript, la etiqueta <br> siempre se incluye en el enlace.

Usando var matches = line.match(reg_exUrl); me da con matches[0] :

 https://www.example.com/?id=456&code=123<br>

en lugar del deseado https://www.example.com/?id=456&code=123

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Si desea seleccionar texto antes de <br> , puede usar una búsqueda anticipada positiva. https?:\/\/.*?(?=<br>)

Agregar $ y \n para un final anticipado de la entrada: https?:\/\/.*?(?=<br>|$|\n)

 const regexp = /https?:\/\/.*?(?=<br>|$|\n)/; const testString = "Webcam-Aufnahme https://www.example.com/file?id=959559110184937375.mp4&code=4yrn1ev<br>**test**"; console.log(testString.match(regexp)[0])

Ver en regex101

about 4 years ago · Santiago Trujillo Relatório

0

Obtiene la coincidencia completa ya que está usando matches[0] pero tiene 2 grupos de captura donde la parte sin <br> está en el grupo de captura 1.

Puede obtener ese valor de grupo usando coincidencia si elimina el indicador global /g .

 var line = "Webcam recording https://www.example.com/?id=456&code=123<br><b>test<b>\n"; var reg_exUrl = /\b(https?:\/\/[^ ]+)(\<br\>)/; var matches = line.match(reg_exUrl); console.log(matches[1]);

Si desea que ambos ejemplos coincidan, puede usar un patrón sin un cuantificador no codicioso mediante el uso de una clase de carácter negado que coincida con cualquier carácter excepto < , y solo coincida si no está seguido directamente por br>

El patrón coincide:

  • \bhttps?:\/\/
  • [^\s<]* Opcionalmente, haga coincidir cualquier carácter excepto un carácter de espacio en blanco o <
  • (?: grupo de no captura
    • <(?!br>) Coincide con < si no le sigue directamente br>
    • [^\s<]* Opcionalmente, haga coincidir cualquier carácter excepto un carácter de espacio en blanco o <
  • )* Cerrar el grupo de no captura y, opcionalmente, repetir

 const regex = /\bhttps?:\/\/[^\s<]*(?:<(?!br>)[^\s<]*)*/; [ "Webcam-Aufnahme https://www.example.com/file?id=959559110184937375.mp4&code=4yrn1ev<br><b>test<b><br>", "Webcam-Aufnahme https://www.example.com/file?id=959559110184937375.mp4&code=4yrn1ev" ].forEach(s => { const m = s.match(regex); if (m) { console.log(m[0]); } });

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda