2016-04-21 41 views
-3

我正在寻找Powershell中的正则表达式来检查字符串是否包含一些以$开头并以$结尾的文本。Powershell中的正则表达式

Ex。如果我在"/SUBSCRIPTIONS/$paramSubscriptionId$/RESOURCEGROUPS"字符串中搜索,那么它应该返回paramSubscriptionId

我正在使用'[$?$]',但它没有按预期工作。有人可以帮助我吗?

+0

能否请您分享您所使用的代码?没有它,*它没有按预期工作*太不清楚。 –

+0

您是否尝试过正则表达式解释器?见例如[这一个](https://regex101.com/r/dC5gO1/1),它非常清楚你的正则表达式,应该是一个清楚的暗示,仍然缺少的东西。 – Jeroen

+0

@WiktorStribiżew:嗯,我猜想像'$ s -match'[$?$]''。 – Joey

回答

1

尝试:

$str = '/SUBSCRIPTIONS/$paramSubscriptionId$/RESOURCEGROUPS' 
if($str -match '\$(.+?)\$') { $Matches[1] } 
+0

谢谢@Frode。如果我尝试使用'$ str =“/ SUBSCRIPTIONS/$ paramSubscriptionId $/RESOURCEGROUPS”',那么我不会得到任何输出 –

+0

您需要单引号才能使其成为字符串。 '$'在powershell(variable-prefix)中是特殊的。 –

+0

对。但是这行来自不同的文件(.json),它包含“”而不是“' –