2016-09-26 77 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