2014-10-10 38 views
0

我需要一個正則表達式,它將與PowerShell一起工作。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電源外殼沒有。回頭看起來沒有工作

回答

2

我不熟悉powershell的正則表達式的味道,但它似乎你不需要後面的看起來開始。

可以使用惰性限定符+?停在第一次出現,而不是:

packages\\(?<name>[^\\]+?)\.(?<version>\d+(?:\.\d+)*) 

demo here

相關問題