- 刪除了先前的文本 - 我問了錯誤的問題!powershell:從字符串末尾刪除文本
啊哈....
我有什麼是$var = "\\unknowntext1\alwaysSame\unknowntext2"
我只需要保留"\\unknowntext1"
- 刪除了先前的文本 - 我問了錯誤的問題!powershell:從字符串末尾刪除文本
啊哈....
我有什麼是$var = "\\unknowntext1\alwaysSame\unknowntext2"
我只需要保留"\\unknowntext1"
嘗試正則表達式:
$foo = 'something_of_unknown' -replace 'something.*','something'
或者,如果你只知道部分的'某事',然後例如
'something_of_unknown' -replace '(some[^_]*).*','$1'
'some_of_unknown' -replace '(some[^_]*).*','$1'
'somewhatever_of_unknown' -replace '(some[^_]*).*','$1'
的$1
是參照組中括號(所述(some[^_]*)
一部分)。
編輯(後更改的問題):
如果使用正則表達式,則需要特殊字符進行轉義:
"\\unknowntext1\alwaysSame\unknowntext2" -replace '\\\\unknowntext1.*', '\\unknowntext1'
或(另一個正則表達式魔術)使用回顧後是這樣的:
"\\unknowntext1\alwaysSame\unknowntext2" -replace '(?<=\\\\unknowntext1).*', ''
(這是:取任何東西(.*
),但是在它之前必須有\\unknowntext1
( '(?<=\\\\unknowntext1)
)並將其替換爲空字符串。
編輯(最後)
如果你知道有東西在中間(的alwaysSame
)知道,這可能幫助:
"\\unknowntext1\alwaysSame\unknowntext2" -replace '(.*?)\\alwaysSame.*', '$1'
function Remove-TextAfter {
param (
[Parameter(Mandatory=$true)]
$string,
[Parameter(Mandatory=$true)]
$value,
[Switch]$Insensitive
)
$comparison = [System.StringComparison]"Ordinal"
if($Insensitive) {
$comparison = [System.StringComparison]"OrdinalIgnoreCase"
}
$position = $string.IndexOf($value, $comparison)
if($position -ge 0) {
$string.Substring(0, $position + $value.Length)
}
}
Remove-TextAfter "something_of_unknown" "SoMeThInG" -Insensitive
感謝您的'System.StringComparison'格式。 ; ^) – ruffin 2014-10-21 14:48:12
什麼我是$ var =「\ unknowntext1 \ alwaysSame \ unknowntext2」
我只需要保留「\ unknowntext1「
不確定這需要一個正則表達式。假設alwaysSame
簡直是始終不變的,圍繞stej的答案的討論表明,似乎是迄今爲止最直接的方式來完成,這將是:
$var.substring(0, $var.indexOf("\alwaysSame"));
這怎麼回答這個問題呢?如果你有'$ var =「\\ unknowntext1 \ alwaysSame \ unknowntext2」'並運行'$ var.substring(0,$ var.indexOf(「\ alwaysSame」));',你會得到'\\ unknowntext1', * QED *。令人驚訝的是,其他答案是非常平淡無奇的。 – ruffin 2014-10-21 16:38:00
我注意到你(哈希姆和盧卡斯)在你的個人資料中都沒有'powershell'標記。 Powershell代碼行總是*將結果發送到「管道」,如果這是拋出你。我的答案中的這一陳述將「返回」OP要求的價值;每個PowerShell代碼行都有點像隱式函數,可以鏈接到另一個後續命令。我可以看到這可能會讓你感到困惑。我還編輯了答案,以使我的意圖更加清晰,非PS用戶。 – ruffin 2014-10-21 16:47:36
請downvote我,我吸。 – AshClarke 2011-04-29 12:26:32
編輯答案,但正如我現在看到的,我不得不再次編輯它;) – stej 2011-04-29 12:28:59