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

142
Vistas
Regex para hacer coincidir múltiples variaciones con condicionales de búsqueda posterior y estar SECO

En JavaScript, estoy tratando de hacer coincidir las siguientes muestras para capturar solo src/ para buscar y reemplazar que itera sobre archivos HTML y CSS.

Muestras a juego:

 1. url(src/imgs/...) 2. url("src/imgs/...") 3. url('src/imgs/...') 4. <img src="src/imgs/...">

Estoy tratando de no repetir en Regex y no quiero múltiples grupos con expresiones casi idénticas.

Creé un grupo sin captura y puedo hacer coincidir 1 y 4, pero no coincide con 2 y 3.

 (((?<=url\()(?<=['"])?)|(?<=\<img\ssrc="))src\/

No puedo entender cómo capturar los 4 grupos de forma SECA sin cuantificadores opcionales, que no son compatibles con los grupos que no son de captura.

Un Regex menos elegante como el de abajo funcionará.

 ((?<=url\()|(?<=url\(['"])|(?<=\<img\ssrc="))src\/

¿Existe una solución más elegante que usar dos grupos para tener en cuenta las variaciones en las muestras 1 a 3?

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

0

Extraer datos de la fuente CSS y HTML con expresiones regulares no parece una buena idea. Hay analizadores especiales para eso. Aunque aquí está el código que puede resultarle útil:

 var samples = [ 'url(src/imgs/...)', 'url("src/imgs/...")', 'url(\'src/imgs/...\')', '<img src="src/imgs/...">', '<img src=\'src/imgs/...\'>', '<img src=\'src/imgs/...\' alt=\'\'>', ]; var report = []; var re = new RegExp( '(?:' // prefix is + '(?:url\\()' // 'url(' + '|' // or + '(?:<img\\s+src=)' // '<img src=' + ')' + '([\'"]?)' // followed by an optional quote + '(.*?)' // URL itself + '\\1' // followed by the quote (still optional) + '\s?.*' // 'img' specific optional suffix (other attributes) + '[)>]' // enclosed by a '>' or a ')' symbol ); samples.forEach(function( sample ){ report.push( re.exec( sample ).join("\t\t") ); }) console.log(report.join("\n"));

Producción:

 url(src/imgs/...) url("src/imgs/...") " src/imgs/... url('src/imgs/...') ' src/imgs/... <img src="src/imgs/..."> " src/imgs/... <img src='src/imgs/...'> ' src/imgs/... <img src='src/imgs/...' alt=''> ' src/imgs/...

Tenga en cuenta que esto fallará para las imágenes con src sin comillas como este: <img src=src/imgs/...>

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