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

265
Views
Regex: extrae una cadena entre comillas dobles donde la línea comienza con una palabra clave

Dadas las siguientes líneas:

 classes!("text-xl", "text-blue-500") String::from("test") classes!("text-sm")

¡Deseo extraer text-xl , text-blue-500 y text-sm y potencialmente cualquier otra cadena dentro de classes!

Lo que tengo hasta ahora es:

  • (?<=classes!).* - ¡Esto me da todo después de clases! pero no los valores exactos
  • (?!^")".*?" - esto me da los valores que quiero pero con las comillas
  • Yo uso las banderas globales y multilínea.
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Si está utilizando Javascript y se admite la búsqueda positiva (no necesita la bandera multilínea, solo la bandera global)

 (?<=classes!\((?:"[^"]*",\s*)*")[^"]*(?=")
  • (?<= Positivo mirar atrás para afirmar a la izquierda
    • classes!\( ¡Coincidencia de classes!(
    • (?:"[^"]*",\s*)* Coincidencia de repeticiones opcionales de "...",
    • " Coincidir con una comilla doble
  • ) Cerrar mirar atrás
  • [^"]* Coincide con caracteres opcionales que no sean "
  • (?=") Afirmar " a la derecha

Demostración de expresiones regulares

 const regex = /(?<=classes!\((?:"[^"]*",\s*)*")[^"]*(?=")/g; const str = `classes!("text-xl", "text-blue-500") String::from("test") classes!("text-sm") `; console.log(str.match(regex))

about 4 years ago · Juan Pablo Isaza Report

0

Podrías probar un lookbehind de ancho no fijo así:

 (?<=^classes!\("(?:[^"]*"[^"()]*")*)[^"]*

Ver una demostración en línea


  • (?<= - Abre un lookbehind positivo;
    • ^classes!\(" - Ancla de línea de inicio y coincidencia literalmente 'classes!("';
    • (?:[^"]*"[^()"]*")* - Un grupo anidado que no captura para hacer coincidir (0+ veces) cualquier carácter que no sea comillas (y paréntesis), una comilla y la misma secuencia repetida .
    • ) - Cerrar mirar atrás;
  • [^"]* - Coincide con 0+ (codiciosos) caracteres que no sean comillas.
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!