Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

144
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!