有时我想要的字符串与我不想要的字符串配对,例如如果我愿意的话
*AA*
有时它会出现
*AA* *AA* F EE*AA*F EE *AA* *AA*
而且我不想要“F EE”部分。这是我的代码,但它不起作用,我仍然得到像上面一样的完整字符串。有什么想法吗?
process.stdin.resume();
var seq = [];
var count = 1;
process.stdin.on("data", function(data) {
(/\*AA\*/).exec(data);
(/\*BB\*/).exec(data);
(/\*CC\*/).exec(data);
(/\*DD\*/).exec(data);
seq.push(data.toString('utf8'));
if (seq.length === count) {
for (var i=0; i<seq.length; i++) { console.log(seq[i]); }
seq = [];
count++;
}
});
最佳答案
match
对于此类问题有好处。只需为正则表达式提供 g
标记并使通配符非贪婪(使用 ?
)
let str = "*AA* *BB* F EE*AA*F EE *CC* *AA*"
let seq = str.match(/\*.*?\*/g)
console.log(seq)
但是,有一点尚不清楚,那就是如何在 on data
处理程序中处理部分输入。例如,如果您收到类似字符串的一部分
一个事件中的 F EE*A
和下一个事件中的另一部分 A*F EE
正则表达式不会匹配 *AA*
——您需要等待,直到确定您拥有完整的输入。
关于javascript - trim 来自 stdin 的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52337780/