我从这样的字符串中提取主题标签:
const mystring = 'huehue #arebaba,saas #ole #cool asdsad #aaa';
const hashtags = mystring.match(/#\w+/g) || [];
console.log(hashtags);
输出结果为:
['#arebaba', '#ole', '#cool', '#aaa']
我的正则表达式应如何匹配:
['arebaba', 'ole', 'cool', 'aaa']
我不想使用地图功能!
答案 0 :(得分:3)
const mystring = 'huehue #arebaba,saas #ole #cool asdsad #aaa';
var regexp = /#(\w+)/g;
var match = regexp.exec(mystring);
while (match != null){
console.log(match[1])
match = regexp.exec(mystring)
}

编辑可以缩短代码。但是,不是你的正则表达式可以解决你的问题,而是选择正确的方法。
var mystring = 'huehue #arebaba,saas #ole #cool asdsad #aaa',
match;
var regexp = /#(\w+)/g;
while (match = regexp.exec(mystring))
console.log(match[1]);

答案 1 :(得分:2)
您已经匹配了多个子字符串,并且您知道前面有#
,所以只需删除它:
const mystring = 'huehue #arebaba,saas #ole #cool asdsad #aaa';
const hashtags = mystring.match(/#\w+/g).map(x => x.substr(1)) || [];
console.log(hashtags);