2016-04-21 3 views
-3

Я ищу регулярное выражение в Powershell, чтобы проверить, содержит ли строка текст, начинающийся с $, и заканчивается $.Регулярное выражение в Powershell

Ex. Если я ищу в строке "/SUBSCRIPTIONS/$paramSubscriptionId$/RESOURCEGROUPS", тогда он должен вернуть paramSubscriptionId.

Я использую '[$?$]', но он не работает должным образом. Может кто-нибудь, пожалуйста, помогите мне в этом?

+0

Не могли бы вы поделиться код, который вы используете? Без этого * он работает не так, как ожидалось * слишком непонятно. –

+0

Вы еще не пробовали объяснителя регулярных выражений? См. [this one] (https://regex101.com/r/dC5gO1/1), это довольно ясно о вашем регулярном выражении и должно быть четким намеком на то, что до сих пор отсутствует. – Jeroen

+0

@ WiktorStribiżew: Угу, я бы предположил что-то вроде '$ s -match '[$? $]''. – Joey

ответ

1

Try:

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

Спасибо @Frode. Если я попробую с '$ str ="/SUBSCRIPTIONS/$ paramSubscriptionId $/RESOURCEGROUPS ", то я не получаю никакого вывода –

+0

Вам нужны одинарные кавычки, чтобы сделать его литеральной строкой. '$' является специальным в powershell (variable-prefix). –

+0

Справа. но эти строки поступают из другого файла (.json), который содержит «» вместо « –

Смежные вопросы