Nodejs的Regex全局匹配不起作用

Regex global match for Nodejs not working

本文关键字:不起作用 全局 Regex Nodejs      更新时间:2023-09-26

我已经试过一百万次了,到处都找过了!我无法让它发挥作用。我试图提取一条推文的文本,并寻找一个全局匹配——只有当它与它完全匹配时才有效,但如果我在它旁边添加一个词,则无效。仅供参考,我正在NodeJS中尝试这样做。

例如:

var userTweet = tweet.text;
var gold = userTweet.match(/#gold/g);
console.log(gold);
console.log(userTweet);
if (userTweet == gold) {
        console.log('got it'); // only grabs it if it exactly matches the tweeted string
    }
    else {
        console.log('not getting it'); // if any other word besides 'gold' is present         doesn't work at all
    }
});

我想补充一点,我正在Twit流中编写代码。

并放置在此功能内:

stream.on('tweet', function(tweet) { 

}

我基本上期望跟踪一个关键词和一个特定的用户。但是,当我试图跟踪一个特定的单词时,它会覆盖我想要跟踪的用户,并跟踪每个使用该关键字的用户。

---对于任何面临同样问题的人,我最终只使用了twitter文本模块。尽管它也有问题。

您可以使用类似/#gold.*?'b/g的正则表达式:

>'#gold'.match(/#gold.*?''b/g)['#gold']>'#gold#asdf#golden'.match(/#gold.*?''b/g)['#gold','#gold']>"耶,#淘金者哇!"。匹配(/#gold.*?''b/g)['#gold','#golddiger']

您可能还想将/i添加到修饰符中,以便找到#GOLD#GoLd等。