javascript - RegEx:捕获重复捕获组的所有单个实例

标签 javascript regex

<分区>

我有一个可以按以下方式格式化的字符串:

user-style-1
user-style-1-bold
user-style-1-italic
user-style-1-bold-italic

我正在 try catch (分别):

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-\d+(-\w+)(-\w+)?$

Regex Demo

您需要为每个要捕获的模式创建一个组。请参阅 ggorlen 发布的链接和该问题的已接受答案以了解推理。

关于javascript - RegEx:捕获重复捕获组的所有单个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59203386/

相关文章:

javascript - 在javascript中的字典数组中搜索一个id

java - 如何知道文本是阿拉伯语还是乌尔都语

regex - 如果相邻单词以相同字母开头,则将空格替换为 "/",否则 "&"Excel 宏 VBA

javascript - 正则表达式:匹配未被其他字母包围的单词,并且仅在结果中包含该单词

正则表达式匹配主机名——不包括 TLD

javascript - 组件重新渲染后 react 谷歌地图标记消失

javascript - 比较两个数组对象并找到唯一值

javascript - IE7 中的 jquery 第 n 个选择器

javascript - 页面右侧空白

python - 如何使用python3提取样本前面的文字?