2015-07-21 1 views
5

Come posso ottenere le ultime 4 cifre in $ MyBuildNumber, che potrebbe anche essere un asterisco? Voglio $ NewVersion per restituire "2.8.1. *"; tuttavia, questo codice non restituisce niente per me:Pattern di espressioni regolari per consentire cifre e asterisco

$MyBuildNumber = "MyBuildNumberIs_2.8.1.*" 
$VersionRegex = "\d+[*]?\.\d+[*]?\.\d+[*]?\.\d+[*]?" 

$VersionData = [regex]::matches($MyBuildNumber,$VersionRegex) 
switch($VersionData.Count) 
{ 
    0   
     { 
     Write-Error "Could not find version number data in MyBuildNumber." 
     exit 1 
     } 
    1 {} 
} 
$NewVersion = $VersionData[0] 
Write-Host "Version: $NewVersion" 

risposta

5

È possibile utilizzare classi di caratteri con cifra e *:

[\d*]+\.[\d*]+\.[\d*]+\.[\d*]+ 
+1

Grazie a @anubhava. Esso funziona magicamente! – TDN

2

anubhava battermi ad esso, ma qui è una versione più compatta della stessa cosa perché perché no:

([\d*]+\.){3}[\d*]+