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

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

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 Report

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