2016-10-27 232 views
0

我想用Powershell修剪字符串。用Powershell查找字符串中的子字符串並修剪

比方說,你有以下字符串: 「測試測試測試測試測試測試/ ABC測試測試測試」

我想要的字符串中「查找」的「/ A」,並最終獲得了「ABC 「通過尋找下一個空間。

這是可以與Powershell?

回答

3

假設您的字符串是$ testString。此代碼剪切將工作。它會抓住以/開頭的字符,直到下一個空格。

$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 

或者用一行而不寫輸出。我只在前面的例子中寫過輸出來顯示結果。

$testString = "Test test test test test test /abc test test test" -match '/a\w*\s' | % {$Matches.Values -replace '/','' -replace'\s',''} 
+0

是否改變任何東西,就是我真正要找的是\ A(反斜槓)?因爲我試過你的代碼,它不能正常工作。你能告訴我\ \的意思和\的意思嗎?所有這些空間在哪裏? – user6854154

+0

對不起,我只是修復了代碼片段,它現在應該可以工作。而在比賽中引導正則表達式就是爲了逃避一個特殊的角色。在這種情況下,這是完全沒有必要的。 \是空白字符,所以在技術上如果你想要abc沒有空白處理它,你必須刪除它。 – jdwal

+0

這個工作適合你嗎? – jdwal

0
"Test test test test test test /abc test test test" -split " " | where {$_ -like "/a*"} | select -First 1 
0
$postiitonSlashA="Test test test test test test /abc test test test".IndexOf("/a") 
$result1="Test test test test test test /abc test test test".Substring($postiitonSlashA) 
$postiotnfirstespace=$result1.IndexOf(" ") 
$result1.Substring(0, $postiotnfirstespace)