在powershell中,我有不同的字符串,例如以下内容(3个不同的例子):
name_something_else_10
another_name_200
what_ever_you_like_1234567
Run Code Online (Sandbox Code Playgroud)
我希望在最后一个下划线之后删除所有内容.所以我想得到的是以下内容:
name_something_else
another_name
what_ever_you_like
Run Code Online (Sandbox Code Playgroud)
每个字符串都作为变量提供,我也需要变量中的结果.我当时正在寻找的是如何通过使用如下函数来剪切字符串的一部分:
$newString = CutOffEveryAfterUnderscore $oldString
Run Code Online (Sandbox Code Playgroud)
您可以使用'_[^_]*$'与replace函数结合的正则表达式():
function Remove-LastUnderscore
{
[CmdletBinding()]
Param
(
[Parameter(Mandatory=$true,Position=0)]
[string]
$string
)
$string -replace '_[^_]*$'
}
Run Code Online (Sandbox Code Playgroud)
现在您可以使用它:
$newString = Remove-LastUnderscore $oldString
Run Code Online (Sandbox Code Playgroud)
或没有功能:
$newString = $oldString -replace '_[^_]*$'
Run Code Online (Sandbox Code Playgroud)
注意:此解决方案也适用于没有下划线的字符串.
| 归档时间: |
|
| 查看次数: |
2454 次 |
| 最近记录: |