2016-03-29 1 views
1

Я не очень хорошо разбираюсь в regex с powershell и могу использовать некоторую помощь. Причина, по которой я использую regex здесь, - это вмешиваться в пробелы (и любой другой текст, который я не могу придумать в atm, которого не ожидали), поэтому мусор убирается, чтобы получить нужное значение.Использование регулярного выражения для получения подстроки для нескольких возможных строк

Я пытаюсь следующий код ...

[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 
} 

Результат должен быть следующим ...

true 
false 
True 
False 

Однако, я получаю следующее сообщение об ошибке ...

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

Любая помощь очень ценится.

ответ

2

Использование:

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

Обратите внимание на .*.

Вы также можете обратиться к https://regex101.com/ в будущем, когда вы пишете свои регулярные выражения. Многие считают, что сайт весьма полезен.

+0

К сожалению, мои работы блокируют этот веб-сайт, но я проверю его и сохраню как favs, когда вернусь домой. Большое спасибо :) –