查找并删除与句子中的子字符串匹配的单词

use*_*423 5 javascript regex string

是否可以使用正则表达式查找包含子字符串的句子中的所有单词?

例子:

var sentence = "hello my number is 344undefined848 undefinedundefined undefinedcalling whistleundefined";
Run Code Online (Sandbox Code Playgroud)

我需要找到这句话中包含“未定义”的所有单词并删除这些单词。

Output should be "hello my number is ";
Run Code Online (Sandbox Code Playgroud)

仅供参考 - 目前我标记化(javascript)并遍历所有标记以查找和删除,然后合并最终字符串。我需要使用正则表达式。请帮忙。

谢谢!

Ric*_*ard 3

这当然是可能的。

像单词开头、零个或多个字母、“未定义”、零个或多个字母、单词结尾之类的东西应该可以做到。

单词边界\b位于字符类之外,因此:

\b\w*?undefined\w*?\b
Run Code Online (Sandbox Code Playgroud)

使用非贪婪重复来避免字母匹配尝试匹配“未定义”并导致大量回溯。

编辑切换[a-zA-Z]到,\w因为该示例在“单词”中包含数字。