我正在寻找一个正则表达式来找到一些包含一些字母的单词.我有这个词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
您可以将此正则表达式与2个负前瞻断言一起使用:
/\b(?!\w*([sar])\w*\1)(?!(?:\w*t){3})[sart]{3,}\b/
Run Code Online (Sandbox Code Playgroud)
RegEx详细信息:
\b:字边界断言(?!\w*([sar])\w*\1):负面预测断言我们没有多个[sar]字母实例(?!(?:\w*t){3}):负面预测断言我们没有超过2个t字母[sart]{3,}:匹配包含[sart]字符的3个以上字符