I had a colleague reach out to me for a little PowerShell Regex help. He has a series of filenames that have a six-digit date embedded towards the end, and I was able to initially come up with a partial solution:
$myFileName = "backup_file_150317.txt.gz" $myDate = $myFileName -replace("[^\d{6}]") $myDate
Then, I noticed that one of the sample filenames he submitted had two sets of digits, so I came up with this:
$myFileName = "b10202.att.150317.tar.gz" $myDate = ($myFileName -replace '[^\d]') -replace '.*?(?=.{6}$)' $myDate
This seems to work, but as I’m not especially a regex wizard, I was wondering if anybody else could come up with any further optimization of the regex? I’ve tried a number of things to try and condense the two -replace statements and have come up empty.