I am trying to trim a string with PowerShell.
Let's say you have the following string:
Test test test test test test /abc test test test
I want to 'find' the '/a' in the string and ultimately get the "abc" by finding the next space.
Is that doable with PowerShell?
Best Answer
$positionSlashA="Test test test test test test /abc test test test".IndexOf("/a")$result1="Test test test test test test /abc test test test".Substring($positionSlashA)$positionfirstspace=$result1.IndexOf(" ")$result1.Substring(0, $positionfirstspace)
Let's say that your string is $testString. This code snipped will work. It will grab the characters that begin with /a until the next white space.
$testString = "Test test test test test test /abc test test test"$matchString = $testString -match '/a\w*\s' | % {$Matches.Values -replace '/','' -replace'\s',''}Write-Host $matchString
Or with one line and not writing output. I only wrote output in the previous example to show you the result.
$testString = "Test test test test test test /abc test test test" -match '/a\w*\s' | % {$Matches.Values -replace '/','' -replace'\s',''}
I would use a named capture group
> if ('Test test test test test test /abc test test test' -match '/(?<Token>[a-z]+)') { $Matches.Token }
abc
This approach allows you to extract exactly the token that follows the '/'. No need to trim '/', or trailing spaces.