javascript - trim 来自 stdin 的输入

标签 javascript arrays node.js sorting

有时我想要的字符串与我不想要的字符串配对,例如如果我愿意的话

*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/

相关文章:

ios - 字典不允许我将字符串附加到它的值

node.js - 在没有自动日志的情况下运行 node.js

node.js - npm-request 不会发送到 fiddler

javascript - 删除 View 时取消所有传出的 REST HTTP 请求

javascript - 使用 javascript 字符串作为 css 背景属性的图像路径

python - 当读取具有未知数据长度的行的文件时,C 中的动态分配数组

node.js - NodeJS中promise如何通过多层回调解析所有数据

javascript - 如何在vueJs中不点击按钮的情况下在新标签页中打开页面

php - 如何在 jquery 中创建关联数组并通过 ajax 发送它以使用 php 进行解析?

php - 如何在 PHP 中使用 ArrayIterator append 带有键的元素?