如何使用 RegEx 和变异元音获取字符串的所有匹配项 - Hashtags

How to get all matches for a String with RegEx and Mutated Vowels - Hastags

我正在寻找一种方法来用其他东西替换所有这些主题标签:

#foo #foo #foo

目前我使用这个代码:

msg = msg.replace(new RegExp('(^|\s)#' + searchString + '(\s|$)', 'gi'),  + 'bar' + ");

只要相同的主题标签只有两次,此解决方案就有效,但一旦变成三个或更多,它就会失败。

据我所知,一个简单的方法是不可能的,因为我需要支持变异元音 (unicode),而且我必须立即替换所有出现的地方。

所以我正在寻找一个可以处理两倍以上相同主题标签的正则表达式。

您可以将此正则表达式与前瞻一起使用来解决此问题:

msg = msg.replace(new RegExp('#' + searchString + '(?=\s|$)', 'gi'), '#bar');

RegEx Demo

你的正则表达式也在 消耗 space 匹配字符串后没有留下 space 来匹配下一次匹配。

更新: 如果你真的想在 # 之前匹配可选的 space 那么你可以使用:

msg = msg.replace(new RegExp('(^|\s)#' + searchString + '(?=\s|$)', 'gi'), "" + 'bar');