この正規表現を試してみて、他の回答は素晴らしいです。しかし、私がAssemblyInfo.csをバージョン文字列のために解析していた場合、私はもっと明示的になります。
$versionString = [regex]::match($s, 'AssemblyVersion.*([0-9].[0-9].[0-9].[0-9])').Groups[1].Value
$version = [version]$versionString
$ versionString
1.0.0.0
$バージョン
Major Minor Build Revision
----- ----- ----- --------
1 0 0 0
更新/編集:これは一般的な問題でない場合は、もう一度(バージョンを解析に関連する
二重引用符間のテキストの解析について)は、私がac私はいつもMajor.minorが十分であることを知っていて、1.2.*
のようなフォーマットを使用することによって、何の努力もせずにいくつかの追加情報を得ているので、私のファイルにはM.m.b.r
という形式のバージョンがあります。
Compile date and timeおよびCan I generate the compile date in my C# code to determine the expiry for a demo version?を参照してください。アセンブリバージョンの第三及び第四の部分のために*を使用する場合
、これら2つの部分は、以下の値をコンパイル時に自動的に設定されている:
第3の部分はからの日数であります2000-01-01
第四の部分は
(いくつかのMSDNのページは言うものの、それは乱数である)を2で割った午前0時からの秒数です
バージョン1.2より大きい* 1.2、1.2.3、または1.2.3.4などしか受け入れられないと思われるバージョンのことを考えてみてください。
また '(\ dは+ \。?)+' [ここでデモ](https://www.regex101.com/r/qI4wG6/3)を使用することができますバージョン番号がほしいのであれば。 –