2016-09-26 28 views
1

我想寫一個正則表達式來篩選值,大括號之間存在: 例子:$path = C:\serices\ApplicationName\{{NewFolderName}}PowerShell中的正則表達式過濾器之間的值{{和}}

我要篩選值「NewFolderName」從上面的變量。一旦我執行,我想在我的輸出中看到"NewFolderName"。我正在使用PowerShell版本2.0。有人可以建議我可能的解決方案。

在此先感謝。

回答

1

下面是您的問題的完整PowerShell。

$path = "C:\users\{{XXX}}\Downloads\{{YYY}}\AppName" 
$matches = [regex]::Matches($path,"\{{2}(.*?)\}{2}").value 
+0

非常感謝Micheal。這工作正常。你能告訴我'{2}'是什麼意思嗎?謝謝 – mahesh

+0

@Mahesh,用正則表達式表示'{2}'表示前面模式的兩次重複。所以另一種寫法是'$ matches = [regex] :: Matches($ path,「\ {\ {(。*?)\} \}」).value'。如果邁克爾的回答對你有幫助,請將它投票並標記爲答案。 –

+0

謝謝Burt_Harris – mahesh

2

一種方法是:

\{{2}(.*?)\}{2} 

a demo on ideone.com

+0

感謝您的快速回復。我想從變量中提取所有可能的匹配。例如:如果這是我的變量,我想在我的輸出中輸入以下值: ''我的輸出中包含以下值: ''' XXX''和''YYY'' – mahesh