PowerShell regex matches not being picked up
The following is part of a PowerShell script that I have running
as After build script. The two echo
s
in the end are just for debugging this problem.
$file = get-content src\ProductAssemblyInfo.cs
$file -match "AssemblyInformationalVersion\(""(.+?)""\)]"
$semver = $matches[1]
echo $file
echo $matches
I expected $matches
to contain the matches for the
-match
operation in the previous line, but it doesn't.
Here is what is actually printed:
using System.Reflection;
[assembly: AssemblyVersion("0.1.0")]
[assembly: AssemblyFileVersion("0.1.0")]
[assembly: AssemblyInformationalVersion("0.1.0-alpha")]
Key : 2
Value : C:\Program Files (x86)\Common Files\Microsoft Shared\XNA\
Name : 2
Key : 1
Value : XNAGSShared
Name : 1
Key : 0
Value : XNAGSShared=C:\Program Files (x86)\Common Files\Microsoft Shared\XNA\
Name : 0
So, you can see the contents of $file
, as expected,
and $matches
, which has some value that means nothing
to me. Something is bizarrely wrong here, right? :p
Comments are currently closed for this discussion. You can start a new one.
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
Support Staff 1 Posted by Feodor Fitsner on 01 Jul, 2014 04:38 AM
This construction can work better:
2 Posted by Rodrigo Dumont on 01 Jul, 2014 06:05 PM
Sure, I just used the
[regex]
syntax, which is much nicer anyway. I'm not too familiar with PowerShell, so I just thought the described behavior was very weird.It isn't actually getting in my way right now, but I think it is something that should be investigated, since more people might end up running into the same situation.
Support Staff 3 Posted by Feodor Fitsner on 01 Jul, 2014 06:17 PM
Yeah, we use more sophisticated regex for replacing version information. Can share it if you need it.
Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 01:45 AM.