Regex 指定所有元素都必须存在的范围样式

Regex 指定所有元素都必须存在的范围样式,regex,Regex,我在练习正则表达式 我有以下字符串 nabcdf 我想选择全部。所以我写了下面的正则表达式 (n[abc]) -> n followed by a , b or c 因此,只有n和a突出显示。基于此,我有两个问题 1) 为什么b和c没有突出显示?既然他们也在场 2) [abc]指定存在a、b或c。是否可以指定一个范围,例如a->c,其中一个范围中的所有元素都应该存在(即),因此它最终会像abc?我知道regex有[a-c],但这意味着a到c之间的任何元素都必须存在。我想要的是一个范围内

我在练习正则表达式

我有以下字符串

nabcdf
我想选择全部。所以我写了下面的正则表达式

(n[abc]) -> n followed by a , b or c
因此,只有n和a突出显示。基于此,我有两个问题

1) 为什么b和c没有突出显示?既然他们也在场

2)
[abc]
指定存在a、b或c。是否可以指定一个范围,例如a->c,其中一个范围中的所有元素都应该存在(即),因此它最终会像
abc
?我知道regex有
[a-c]
,但这意味着a到c之间的任何元素都必须存在。我想要的是一个范围内的所有元素都应该存在。这有一个表达方式吗

n[abc]
将只捕获
n
字符类中的一个。要捕获更多,您需要像
*
+
这样的量词

就这样吧

n[a-c]+ #will capture `n` and at least one of the character class

如果您希望所有的
abc
都出现,您可以使用
lookahead

(?=.*a)(?=.*b)(?=.*c)n[abc]+
见演示

(?=.*a)(?=.*b)(?=.*c)n[abc]+