我一直试图找到将删除命令串在一起的最佳方法,但我不理解如何在一个字符串中对多个进行此操作... 我想要删除所有空格和所有下划线;我知道我可以这样单独做这些:
$Name = "\Test Name\Test_Underscore 1_2"
$NameFull1 = $NAME -replace '\s'
$NameFull2 = $NameFull1 -replace '_',''
并有这样的输出:
TestNameTestUnderscore12
但是我想要只做一次,但我不确定如何将它们结合起来(我现在已经好好看了一会儿,却无法找到答案)。
我认为它看起来像这样(我还尝试了其他一些方法),但一直遇到错误......
$Name = "\Test Name\Test_Underscore 1_2"
$NameFull = $NAME -replace '\s' | '_',''
答案 0 :(得分:2)
我建议将您需要删除的字符放入character class:
使用“字符类”,也称为“字符集”,您可以告诉正则表达式引擎只匹配多个字符中的一个。只需将要匹配的字符放在方括号中即可。如果您想匹配
a
或e
,请使用[ae]
。您可以在gr[ae]y
中使用此选项来匹配gray
或grey
。
代码:
PS> $Name = "\Test Name\Test_Underscore 1_2"
PS> $NameFull1 = $NAME -replace '[\s_\\]+'
PS> $NameFull1
TestNameTestUnderscore12
[\s_\\]
将匹配空白,_
或\
。
答案 1 :(得分:0)
管道符号(|
)必须在里面字符串中进行更改:
$NameFull = $NAME -replace '\s|_', ''