如何搜索多个字符串并在找到一个时停止?

How can I search for multiple strings and stop when one is found?

所以我有一段代码,它从一个文本文件中取出一行并在另一个文本文件中搜索它。这是我的代码:

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

我的问题是:

一个。我如何执行多个字符串(str1、str2、str3)的搜索,因为它只搜索 str1 然后停止。

乙。如何在找到字符串时停止搜索,例如searchStream('base_output', str1); -> 在文本文件中找到 str1,搜索然后停止,然后移动到 str2,然后移动到 str3 并将字符串写入,例如,到另一个文本文件。

A) 当你阅读一行时,你可以一个一个地搜索多个字符串。 B) 因为我们在这里使用多个 if 语句而不是 if else 函数会一个接一个地搜索每个字符串。 (P.S。您可以在 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);