2016-10-27 183 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)