PowerShell从文件

时间:2017-11-13 16:47:50

标签: regex string powershell

问题

我正在编写一个脚本,可以自动执行一系列项目的版本控制。我想要实现的是将AssemblyVersion文件中找到的AssemblyInfo.cs的当前值存储到变量中。

E.G。:该行是[assembly: AssemblyVersion("1.0.0.0")],我希望提取/存储AssemblyVersion("")]之间的任何值

我知道这里很可能需要使用正则表达式,但我无法理解如何在两个特定值之间定位值。我试图通过Regular-Expression.info网站阅读,希望能更好地理解这一点。在这篇文章中,我通过LookaheadLookbehind阅读了这样一种可能性,但是不明白如何将这些表达式结合起来,几乎没有例子可以很好地掌握如何使用这些表达式。我也翻阅了匹配的完整线,但这似乎也让我处于一个位置,我将使用两个单独的方程式来尝试获得我想要的结果......

在我的研究中,我在Match everything between two words in PowerShell找到了一种类似的方法。不幸的是,尽管提供了迷你解释,我无法修改和复制结果以满足我的需要。我经常遇到一个错误说明:“无法转换为正则表达式”。我无法弄清楚我做错了什么,并没有解释$subject变量所指的是什么。

继续我的研究,其他人对上述问题提出的其他类似变体具有我无法使用的特定案例的答案。

我希望这里有人可以帮助我回答我的问题并给出一个答案,其中每个部分都可以理解,以修改答案以适应未来类似的问题。

问题

我如何获取值,尽管值类型,在两个字符串之间,以便我可以使用一个可扩展到足以不关心找到的字符长度的单个等式可靠地获取AssemblyVersion值?你能不能解释一下这些答案,以便我能理解你是怎么来的?

1 个答案:

答案 0 :(得分:2)

并不总是需要使用正则表达式。在您的情况下,您可以像分隔符一样使用双引号分割,如:

$str='[assembly: AssemblyVersion = ''[assembly: AssemblyVersion("1.0.0.0")] AssemblyVersion("")]'
($str -split '"')[1]