我将尝试创建一个正则表达式来从字符串中提取数据。我的示例字符串:
dn1:pts-sc1.1
。我期望的数据格式是:['pts','sc','1.1']
,基本上是在:
之后的每组字母和末尾的数字。
目前我拥有的是:
/^[^:]+:(?:([a-z]+)-?)+([\d\.]+)$/g
['sc', '1.1']
我还尝试在第一个捕获组中添加+
:
/^[^:]+:(?:([a-z]+)+-?)+([\d\.]+)$/g
结果相同。唯一的区别是regex101给了我这个评论:
重复捕获组只会捕获最后一次迭代。在重复组周围放置一个捕获组以捕获所有迭代,或者如果您不关心数据,则使用非捕获组。
--编辑
输入字符串示例:
dn2.33:sc-pts-tt-as3.43
dn2.33:sc3.43
dn2.33:sc-tt-as3.43
/^[^:]+:([a-z]+)-([a-z]+)([\d.]+)$/
呢? - Wiktor Stribiżew