2016-04-21 20 views
-3

Ich suche nach regulärem Ausdruck in Powershell, um zu überprüfen, ob Zeichenfolge einen Text enthält, der mit $ beginnt und mit $ zugegen ist.Regulärer Ausdruck in Powershell

Ex. Wenn ich in "/SUBSCRIPTIONS/$paramSubscriptionId$/RESOURCEGROUPS" Zeichenfolge suche, dann sollte paramSubscriptionId als Ergebnis zurückgeben.

Ich verwende '[$?$]', aber es funktioniert nicht wie erwartet. Kann mir bitte jemand dabei helfen?

+0

Könnten Sie bitte den Code teilen Sie verwenden? Ohne es, * es funktioniert nicht wie erwartet * ist zu unklar. –

+0

Haben Sie schon einen Regex-Erklärer ausprobiert? Siehe z.B. [this one] (https://regex101.com/r/dC5gO1/1), es ist ziemlich klar über deine Regex und sollte ein klarer Hinweis darauf sein, was noch fehlt. – Jeroen

+0

@ WiktorStribiżew: Uhm, ich würde etwas wie $ s-match [$? $] '' Erraten. – Joey

Antwort

1

Versuchen:

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

Danke @Frode. Wenn ich versuche mit '$ str ="/SUBSCRIPTIONS/$ paramSubscriptionId $/RESOURCEGROUPS "' dann bekomme ich keine Ausgabe –

+0

Sie brauchen einfache Anführungszeichen, um eine literale Zeichenfolge zu machen. '$' ist speziell in Powershell (Variablen-Präfix). –

+0

Rechts. aber diese Zeilen kommen aus einer anderen Datei (.json), die "" anstelle von " –