2016-03-29 15 views
1

Powershell ile regex'te çok iyi değilim ve biraz yardım alabilirim. Burada regex kullanmamın nedeni whitespaces (ve beklenmedik atm düşünemediğim başka bir metin) için kabul etmektir, bu yüzden sonra istenen değer elde etmek için hurda sıyrılır.Mümkünse birden fazla dizi için alt dizgi almak için regex kullanma

Aşağıdaki kodu çalışıyorum

...

[String[]]$listOfStrings = @(' token = true ', ' token = false ', ' token = True ', ' token = False ') 

For ($stringNumber = 0; $stringNumber -lt $listOfStrings.length; $stringNumber++) 
{ 
    [String]$stringTest = ($listOfStrings[$stringNumber] -replace '*token*=','').Trim() 
    Write-Host $stringTest 
} 

çıkış Ancak, aşağıdaki hata iletisini alıyorum şu ...

true 
false 
True 
False 

olmalıdır ...

Invalid regular expression pattern: *token*=. 
At :line:5 char:63 
+  [String]$stringTest = ($listOfStrings[$stringNumber] -replace <<<< '*token*=','').Trim() 

Herhangi bir yardım çok takdir edilmektedir.

cevap

2

Kullanım:

[String]$stringTest = ($listOfStrings[$stringNumber] -replace '.*token.*=','').Trim() 

Bildirimi .*.

Normal ifadelerinizi yazarken, https://regex101.com/ numaralı başvuruya da başvurmak isteyebilirsiniz. Birçok kişi bu siteyi oldukça kullanışlı buluyor.

+0

Maalesef çalışmam bu web sitesini engeller, ancak eve gittiğimde bunu kontrol edip favoriler olarak kaydederim. Çok teşekkürler :) –

İlgili konular