使用PowerShell将多个子版本号替换为另一个子版本号

时间:2017-02-07 09:48:50

标签: regex string powershell replace

我有几个Puppet清单,其中包含有关我公司开发的软件的版本信息。它看起来像这样:

app_version     => '11.6.1',

我需要将版本号更改为只在版本号末尾添加字母的子版本,以便它看起来像这样:

app_version     => '11.6.1d',

我的清单已经包含了一些颠覆,所以你已经有了11.6.1a。 我使用哈希表来存储不同的版本和替换值:

$versions = @{
  '11.6.1[a-zA-Z]'  = '11.6.1b';
  '11.7.0[a-zA-Z]'  = '11.7.0d';
  '11.7.2[a-zA-Z]'  = '11.7.2b';
  '11.8.6[a-zA-Z]'  = '11.8.6c';
  '11.8.13[a-zA-Z]' = '11.8.13b'
}

我遇到此问题,因为使用[a-zA-z]后跟的版本号只会更改版本号后面包含字母的子版本。

我需要在$versions中使用什么表达式,以便查看版本为11.6.1或11.6.1 + 1之后的字母?

1 个答案:

答案 0 :(得分:1)

如果您正在寻找与11.6.111.6.1d匹配的正则表达式,您可能需要:

11.6.1[a-zA-Z]?

如果存在,则可选地匹配最后一个集合([a-zA-Z]),但如果它不存在则不匹配。