- 删除了先前的文本 - 我问了错误的问题!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