Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式将单词与条件匹配_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式将单词与条件匹配

Javascript 正则表达式将单词与条件匹配,javascript,regex,Javascript,Regex,我有一根这样的绳子 var msg = "ATEAM-3121 ATEAM-31 123 ATEAM-32 #finish \n ATEAM-3211 \n ATEAM-51 ATEAM-52 ATEAM-53 12345677 #finish ATEAM-1000"; 在上面的字符串中,对于每一行,我希望在#finish tag之前匹配匹配ATEAM-[0-9]*的标记。如果任何一行没有#finish,则应忽略所有ATEAM标记 这是一个有效的非正则表达式解决方案 msg = msg.spl

我有一根这样的绳子

var msg = "ATEAM-3121 ATEAM-31 123 ATEAM-32 #finish \n ATEAM-3211 \n ATEAM-51 ATEAM-52 ATEAM-53 12345677 #finish ATEAM-1000";
在上面的字符串中,对于每一行,我希望在#finish tag之前匹配匹配ATEAM-[0-9]*的标记。如果任何一行没有#finish,则应忽略所有ATEAM标记

这是一个有效的非正则表达式解决方案

msg = msg.split("\n");
var tickets = [];
msg.forEach(function(val) {
  var ticks = val.split(' ');
  for(var i = ticks.indexOf('#finish'); i >= 0; i-- ) {
    if(ticks[i].match(/^ATEAM-.*$/)) {
      tickets.push(ticks[i]);
    }
  }
});
console.log(tickets);
但我想将其转换为正则表达式解决方案,这就是我所尝试的

msg.match(/(ATEAM-[0-9]*|\#finish)/g);
但它给了我这样的结果,但并不像预期的那样。有人能帮我吗

ATEAM-[0-9]+(?=.*?#finish)
您可以使用
lookahead
执行此操作。请参阅演示


这就是我要找的。谢谢,我正在等待10分钟完成接受。我检查时,还剩54秒:)