特别是,这可以用 Javascript 实现吗?
>> "Version 1.2.3.4".match(/\S+ (\d+)(\.\d+)*/)
["Version 1.2.3.4", "1", ".4"]
很明显,$2 被设置为最后一个 Kleene-“匹配”。是否没有内置方法来检索其余部分(".2"
,".3"
)?
如果这不能在 JS 中轻松完成,Perl 可以做到吗?
更新:到目前为止,许多答案都是“解决方法”,因为我的示例很简单。如果我想匹配的重复部分不仅仅是一个数字,它们就不起作用。
但是,确实存在一个非常有效的解决方案:使用/expr/g
全局正则表达式匹配:只需过滤掉重复的部分并使用它。我发现这与更普遍适用的*
运算符相比不太灵活,但在大多数情况下它显然可以完成工作。