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

271
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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