2016-03-29 2 views
1

Mein Problem ist, dass, wenn ich $var -match "(id="".*?$args)" schreiben, hat ich alles von dem ersten id des Textes zu $args bekommen, aber ich nur Text muß vom id begann die ist am nächsten zu $args.Powershell - Probleme bei Spiel zu verwenden, wenn der Text, den ich vor dem Schlüsselwort muß

Jede Hilfe würde sehr geschätzt werden.

+0

Verwenden '$ var -match "(\ Gebot =" "(?:? (\ Gebot =" ")) * args $.)"' –

+0

können Sie eine Probe Reihe von '$ var liefern 'und das erwartete Ergebnis? –

+0

[Beispielzeichenfolge] (https://regex101.com/r/gB2yR4/1) Das erwartete Ergebnis ist der Name des Albums, in dem der Songtitel in $ args gefunden werden kann. Ich löste es mit '-match' (? S) d = (. (?! d =)) + $ args "' then '$ stimmt mit [0] -match"> "(. *)" "<" ' – kata

Antwort

1

$var Unter der Annahme hat keine Eigenschaften, die wir ergreifen können, wenn so nur select/where verwenden, sonst was Sie versuchen können, um den Startindex von $args finden, dann, wenn die IDs die gleiche Länge jedes Mal sind Sie X Anzahl greifen könnte Zeichen vor $ args.

#So it would look something like: ID=xxxxxx$args 
$argsIndex = $var.IndexOf($args) 

#Lets say the ID is always 6 chars long, grab 6 characters prior using the substring method:  
$var.substring($argsIndex-6,6) 
Verwandte Themen