我需要一个正则表达式,它将与powershell一起使用。
需要使用像
这样的字符串..\..\..\packages\Microsoft.Samples.Security.SSPI.1.0.0\lib\net11\Microsoft.Samples.Security.SSPI.dll
..\..\..\packages\Antlr3.3.4.1.9004\lib\Antlr3.Runtime.dll
提取版权号码和名称。在这些情况下:
Samples.Security.SSPI and 1.0.0
Antlr3 and 3.4.1.9004
我相信
packages\\(?<name>[^\\\\]+(?!<!\.[0-9]+\.))\.(?<version>[0-9]+(\.[0-9]+)+)[\\\/]
应该做的伎俩
但它似乎没有在windows power shell中。回顾似乎不起作用
答案 0 :(得分:2)
我不熟悉powershell的正则表达式风格,但看起来你不需要从头开始看。
您可以使用延迟量词+?
来代替第一次停止:
packages\\(?<name>[^\\]+?)\.(?<version>\d+(?:\.\d+)*)
请参阅demo here。