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

182
Vistas
¿Cómo puedo buscar varias cadenas y detenerme cuando se encuentra una?

Así que tengo un fragmento de código que toma una línea de un archivo de texto y la busca en otro archivo de texto. Este es mi código:

 const searchStream = (filename, text) => { return new Promise((resolve) => { const inStream = fs.createReadStream(filename + '.txt'); const outStream = new stream; const rl = readline.createInterface(inStream, outStream); const result = []; const regEx = new RegExp(text, "i") rl.on('line', function (line) { if (line && line.search(regEx) >= 0) { result.push(line) } }); rl.on('close', function () { console.log('finished search', result) resolve(result) }); }) } searchStream('base_output', str1); searchStream('base_output', str2); searchStream('base_output', str3);

Mis preguntas son:

A. ¿Cómo realizo una búsqueda de múltiples cadenas (str1, str2, str3) porque solo lo hace para str1 y luego se detiene?

B. ¿Cómo detengo la búsqueda cuando encuentra una cadena, por ejemplo, searchStream('base_output', str1); -> str1 se encuentra en el archivo de texto, la búsqueda luego se detiene y luego se mueve a str2, luego a str3 y escribe las cadenas, por ejemplo, en otro archivo de texto.

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

0

A) Cuando lee una línea, puede buscar varias cadenas una por una. B) Como estamos usando múltiples sentencias if aquí en lugar de if else , la función busca cada cadena una tras otra. (PS, puede leer sobre cómo escribir en archivos en la documentación de nodejs)

 const searchStream = (filename, text, text2, text3) => { return new Promise((resolve) => { const inStream = fs.createReadStream(filename + '.txt'); const outStream = new stream; const rl = readline.createInterface(inStream, outStream); const result = []; const regEx = new RegExp(text, "i") const regEx2 = new RegExp(text2, "i") const regEx3 = new RegExp(text3, "i") rl.on('line', function (line) { if (line && line.search(regEx) >= 0) { result.push(line) } if (line && line.search(regEx2) >= 0) { result.push(line) } if (line && line.search(regEx3) >= 0) { result.push(line) } }); rl.on('close', function () { console.log('finished search', result) resolve(result) }); }) } searchStream('base_output', str1, str2, str3);
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