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

94
Vistas
Cortar cadena multilínea con RegEx y javascript

Tengo un texto de ejemplo:

 var text = `class Eee { test(){ console.log("123"); } } use(123, Eee); class Ttt { test(){ console.log("123"); } } use(456, Ttt); class Ooo { test(){ console.log("123"); } } use(111, Ooo); `;

Y no obtendré parte del texto, por ejemplo:

 `class Ttt { test(){ console.log("123"); } } use(456, Ttt);`

Si uso RegEx:

 let result = text.match(/^class Ttt \{(.*)/gm);

Tengo resultado: [ 'class ttt {' ]

Si uso RegEx:

 let result = text.match(/^class Ttt \{(.*)\}/gm);

o

 let result = text.match(/^class Ttt \{(.*)use\([\b].Ttt\);/gm);

Tengo resultado: null . ¿Cómo puedo obtener todo el texto que quiero, no la primera línea?

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

0

Usted especificó dónde debe comenzar el partido, pero también debe especificar dónde debe terminar.

Si el final, por ejemplo, está al comienzo de una nueva línea y se debe use(456, Ttt); por sí mismo:

 ^[^\S\n]*class Ttt {[^]*?\n\s*}\s*\n\s*use\(.*\);$

Tenga en cuenta que \s también puede coincidir con saltos de línea.

El patrón en partes:

  • ^ Comienzo de cadena
  • [^\S\n]* Coincidencia de caracteres de espacios en blanco opcionales sin saltos de línea
  • class Ttt { Coincide literalmente
  • [^]*? Haga coincidir cualquier carácter, incluidas las líneas nuevas, la menor cantidad posible
  • \n\s*}\s* Coincide con una nueva línea y } entre caracteres de espacio en blanco opcionales
  • \nuse\(.*\); Haga coincidir una nueva línea y use(...);
  • $ Fin de la cadena

Demostración de expresiones regulares

 var text = `class Eee { test(){ console.log("123"); } } use(123, Eee); class Ttt { test(){ console.log("123"); } } use(456, Ttt); class Ooo { test(){ console.log("123"); } } use(111, Ooo); `; const regex = /^[^\S\n]*class Ttt {[^]*?\n\s*}\s*\n\s*use\(.*\);$/m; const m = text.match(regex); if (m) { console.log(m[0]); }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Por lo que vale, aquí hay una versión sin expresiones regulares:

 'class ' + text.split('class ')[1] 

 var text = `class Eee { test(){ console.log("123"); } } use(123, Eee); class Ttt { test(){ console.log("123"); } } use(456, Ttt); class Ooo { test(){ console.log("123"); } } use(111, Ooo); `; console.log('class ' + text.split('class ')[1])

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