2016-03-29 15 views
1

Sorunum $var -match "(id="".*?$args)" yazarsanız ben $args metnin ilk id her şeyi almak, ama ben sadece id başlayarak metin gerekir ki hangi $args'a en yakındır.PowerShell - İhtiyacım metin anahtar kelimenin önüne ise maçı kullanmada sorunlar

Herhangi bir yardım çok takdir edilecektir. $var varsayarsak

+0

Kullanım '$ var -Maç "(\ bid =" "(?:?! (\ Teklifi =" ")) * $ args.)" –

+0

Eğer' $ var örnek bir dizesini sağlayabilir ' ve beklenen sonuç? –

+0

[örnek dizgi] (https://regex101.com/r/gB2yR4/1) Beklenen sonuç, $ args cinsinden şarkı başlığının bulunduğu albümün adıdır. '-match' (? S) d = (. (?! d =)) + $ args ''sonra' $ match [0] -match ">" "(. *)" "<" Kullanarak çözdüm. ' – kata

cevap

1

yüzden sadece select/where kullanırsanız biz kapmak gibi özelliklere sahiptir aksi kimlikleri aynı uzunlukta size X sayıda kapmak her zaman olup olmadığını, sonra $args başlangıç ​​indeksi bulmaktır deneyebilirsiniz neler $ args'den önceki karakterler.

#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) 
İlgili konular