If I want to split this string into an array and strip out all brackets but only want to split in the dash how would I do it.
$ADUser = "Offline - Server (Win2012)"
This string could potentially be: "Offline | Server (Win2012)"
With pipe split!
###This:
$userdesc = ($ADUser -split ' *[-|] *') -notmatch '[?@]' -replace '^\(|\)$'
##results as:
Offline
Server (Win2012
##But I need this:
Offline
Server Win2012
##I have tried this to no avail:
($ADUser -split ' *[-|] *') -notmatch '[?@]' -replace '^\(|\)$|^\s*\(\$'
Any clues or pointers greatly appreciated.
CodePudding user response:
You can use
($ADUser -split "\s*[|-]\s*") | ?{ $_ -notmatch '[?@]' } | %{ $_ -replace '[()]' }
That is
($ADUser -split "\s*[|-]\s*")- splits with a|or-chars enclosed with zero or more whitespaces?{ $_ -notmatch '[?@]' }- discards all items not containing?and@%{ $_ -replace '[()]' }- removes the parentheses.
