【发布时间】:2016-02-09 15:16:30
【问题描述】:
我是 PowerShell 脚本的新手,正在研究 POC。我被卡住了,无法继续进行,所以我在这个网站上发布我的问题以获得一些想法/答案。
任务是将一组值与正则表达式进行比较。但是我没有得到想要的输出。这是我写到现在的代码:
$array = @('MBS\FY16\11 May\Sirius Agreements\04 Build','MBS\FY16\11 May\Sirius Agreements\05 Build')
$values = 'MBS\FY16\11 May|MBS\FY16\12 Jan'
$Splitvalues = $values.Split('|')
[regex]$Regex = ‘(?i)^(‘ + (($Splitvalues | % {[regex]::escape($_)}) –join “|”) + ‘)$’
if($array -match $Regex)
{
echo "Matched"
}
else
{
echo "notmatched"
}`
要求是与 $Values 中的任何一个匹配。所以我用管道分割它们,然后用两个数组值创建一个正则表达式。
当我与 $array 的实际值数组进行比较时,它失败了。它总是指向else 部分。
我在想,当我们使用正则表达式进行匹配时,如果确切的单词与源值匹配,它将返回 true。或者也许我使用了错误的正则表达式。
我只需要匹配“MBS\FY16\11 May”或“MBS\FY16\12 June”的确切部分值并返回匹配的值或留言。
我该如何解决这个问题?
【问题讨论】:
标签: regex powershell powershell-3.0 powershell-4.0