Javascript 正则表达式:捕获重复捕获组的所有单个实例

Javascript 正则表达式:捕获重复捕获组的所有单个实例,javascript,regex,Javascript,Regex,我有一个字符串,可以通过以下方式格式化: user-style-1 user-style-1-bold user-style-1-italic user-style-1-bold-italic 我试图分别捕捉: nothing (does not match) -bold -italic -bold and -italic (as separate captures) 这是我的正则表达式:^user style-\d+-.+?+?$也可能是^user style-\d+?:-.+?$,因为我

我有一个字符串,可以通过以下方式格式化:

user-style-1
user-style-1-bold
user-style-1-italic
user-style-1-bold-italic
我试图分别捕捉:

nothing (does not match)
-bold
-italic
-bold and -italic (as separate captures)
这是我的正则表达式:^user style-\d+-.+?+?$也可能是^user style-\d+?:-.+?$,因为我不关心完整的捕获,只关心它的各个部分。它包括:

nothing
-bold
-italic
-bold-italic and -italic
还是替补

nothing
-bold
-italic
-italic
我不太明白如何让重复捕获组捕获所有单个实例,而不是整个实例,以及最后一个实例或最后一个实例。

试试这个正则表达式:^user-style-1-bold?-斜体$ 它应该涵盖所有4个案例

链接:

试试这个正则表达式:^user-style-1-bold?-斜体$ 它应该涵盖所有4个案例


链接:

看看下面这样的内容:

^user-style-\d+(-\w+)(-\w+)?$

对于要捕获的每个模式,您将需要一个组。请参考ggorlen发布的链接和该问题的公认答案,以了解原因

看看这样的东西:

^user-style-\d+(-\w+)(-\w+)?$

对于要捕获的每个模式,您将需要一个组。请参考ggorlen发布的链接和该问题的公认答案,以了解原因

啊,是的,因为我不可能做我想做的事。谢谢啊,是的,因为我不可能做我想做的事。谢谢请阅读,不幸的是,我试图让它成为动态的,我想我需要一个替代解决方案。只需在user style-\d+之后捕获尾部,然后第二次与之匹配。[…s.matchAll/^user style-\d+\-[\w-]+$/gm]。mape=>e.pop.match/-\w+/g@ggorlen太好了,谢谢!请阅读,不幸的是,我试图让它成为动态的,我想我需要一个替代解决方案。只需在user style-\d+之后捕获尾部,然后第二次与之匹配。[…s.matchAll/^user style-\d+\-[\w-]+$/gm]。mape=>e.pop.match/-\w+/g@ggorlen太好了,谢谢!