Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Regular expression pattern to allow digit and asterisk

How can I get the last 4 digits in $MyBuildNumber, which could also be an asterisk? I want $NewVersion to return "2.8.1.*"; however, this code does not return anything for me:

$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"
like image 568
TNV Avatar asked Jul 21 '15 21:07

TNV


2 Answers

You can use character class with digit and *:

[\d*]+\.[\d*]+\.[\d*]+\.[\d*]+
like image 75
anubhava Avatar answered Oct 24 '22 18:10

anubhava


anubhava beat me to it, but here's a more compact version of the same thing because why not:

([\d*]+\.){3}[\d*]+
like image 22
Hayden Schiff Avatar answered Oct 24 '22 18:10

Hayden Schiff