删除数组中每个值的字符串的开头和结尾

时间:2013-08-27 19:45:17

标签: arrays powershell substring

我有一组数据如下:

Resource file d:\path\relevantDtata\WebConfigResource.resx is missing value for key /configuration/addSettings/add[@key="relevantData"]
Resource file d:\path\relevantDtata\WebConfigResource.resx is missing value for key /configuration/addSettings/add[@key="relevantData"]
Resource file d:\path\relevantDtata\WebConfigResource.resx is missing value for key /configuration/addSettings/add[@key="relevantData"]
Resource file d:\path\relevantDtata\WebConfigResource.resx is missing value for key /configuration/addSettings/add[@key="relevantData"]
Resource file d:\path\relevantDtata\WebConfigResource.resx is missing value for key /configuration/addSettings/add[@key="relevantData"]

除了一些简短的部分外,几乎所有这些数据都可以删除。

Resource file d:\path\可以离开

\WebConfigResource.resx is missing value for key /configuration/addSettings/add[@key="也可以。文件"]也可以。

目前所有这些数据都存储在$validationVar我猜我想要使用子字符串,但我不完全确定究竟需要发生什么。可能是下面的东西?

$validationVar | % $_.substring(15)

2 个答案:

答案 0 :(得分:2)

$var1 = 'Resource file d:\path\relevantDtata\WebConfigResource.resx is missing value for key /configuration/addSettings/add[@key="relevantData"]'

PS C:\Scripts\so> $var1.Substring($var1.IndexOf(""""),$var1.IndexOf("""]")-$var1.IndexOf("="""))
"relevantData"

所以你可以做这样的事情

$validationVar | % { $_.Substring($_.IndexOf(""""),$_.IndexOf("""]")-$_.IndexOf("="""))}
如果您想要“RelevantData”,那么

甚至更好。SO answer

   PS C:\>  $validationVar | % {$_.Split('"')[1]}
    relevantData

答案 1 :(得分:1)

我将-replace与正则表达式一起使用:

$pattern = '^Resource file d:\\path\\(.*?)\\WebConfigResource\.resx is missing value for key /configuration/addSettings/add\[@key="(.*?)"\]'

$validationVar -replace $pattern, '$1$2'