修剪字符串结尾包含(#)- PowerShell

dxxyhpgq  于 2023-04-30  发布在  Shell
关注(0)|答案(1)|浏览(138)

我在删除字符串末尾的某些字符时遇到了麻烦。字符串通常看起来像:(()中的数字是变化的),我想去掉()包括里面的值,我加了Trim()和结尾去掉空格

$string = CollectorDCFService (1)
$string = LogicalShadowDatabase (3)

我试着用“”来代替它

$string.Replace("([0-9])"," ").Trim()
$string.Replace("(\*)"," ").Trim()

它也不工作。..

eagi6jfj

eagi6jfj1#

  • String.Replace()NET method 只支持 literal(逐字)字符串替换,因此不能使用regex结构,如[0-9]
  • 使用基于正则表达式的-replace* 运算符 *:
  • 用一种不需要单独调用.Trim()(删除(…)前面的空格)的方式来表述正则表达式:
$strings = 'CollectorDCFService (1)', 'LogicalShadowDatabase (3)'

# -> 'CollectorDCFService', 'LogicalShadowDatabase'
$strings -replace '\s+\([0-9]+\)$'

有关正则表达式的解释和使用它的能力,请参见this regex101.com page

相关问题