我想要獲取我的程序集的版本號。我使用正則表達式,這是我的模式。排除特殊字符與正則表達式
$pattern = '\[assembly: AssemblyVersion\("(.*)"\)\]'
它的工作不錯,但在AssemblyInfo.cs中和AssemblyInfo.vb中存在的.vb文件在CS文件
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.7.1.0")]
一些特殊的字符作爲例子
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("3.2.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
所以我想排除//和'charachters在我的模式。我試圖用[^ //]排除它,但它不起作用。我嘗試了其他的東西,但它也沒有奏效。
而第二個問題是
在.vb文件,也有不同的首發。
<Assembly: AssemblyVersion("3.2.0.0")>
,並在C#中的文件有不同的出發
[assembly: AssemblyVersion("3.7.1.0")]
我怎麼能還包括VB版到我的模式?
問題在哪裏?
將模式固定在行首,只有可選的空白符:'^ \ s * \ [assembly:AssemblyVersion \(「(。*)」\)\]' –
但是,我沒有看到'/'在你的版本字符串中 – anubhava
你是否真的需要匹配你正在使用該模式的語言的整個行?你能不能和大會匹配:...?這是更多文本的一部分嗎?如果你只需要捕捉括號內的所有內容,這可以簡單得多。 – mickmackusa