正则表达式找到包含这些字母的单词

Ert*_*ani 7 javascript regex

我正在寻找一个正则表达式来找到一些包含一些字母的单词.我有这个词start,并且通过正则表达式它应该找到包含(s,两个t,a,r)的单词,其中包含至少3个字母.因此,它应该返回所有这些词: start,tarts,arts,art.所以它至少应该是三个字母,并且只包含那些字符(s,两个t,a,r).

我试过这样的事情:

/(([^s]*s){1})(([^t]*t){2})(([^a]*a){1})([^r]*r){1}/g
Run Code Online (Sandbox Code Playgroud)

但是这个正则表达式不起作用,因为它需要按此顺序排列.

我也试过这个:

[star]{3,}
Run Code Online (Sandbox Code Playgroud)

但它匹配内部的任意数量的字符[],前匹配sss

anu*_*ava 8

您可以将此正则表达式与2个负前瞻断言一起使用:

/\b(?!\w*([sar])\w*\1)(?!(?:\w*t){3})[sart]{3,}\b/
Run Code Online (Sandbox Code Playgroud)

RegEx演示

RegEx详细信息:

  • \b:字边界断言
  • (?!\w*([sar])\w*\1):负面预测断言我们没有多个[sar]字母实例
  • (?!(?:\w*t){3}):负面预测断言我们没有超过2个t字母
  • [sart]{3,}:匹配包含[sart]字符的3个以上字符