Regex 如何删除字符串中的多个字符
我一直在努力寻找将remove命令串在一起的最佳方法,但我不知道如何在一个字符串与多个字符串中实现这一点。。。 我想删除所有空格和下划线;我知道我可以单独这样做:Regex 如何删除字符串中的多个字符,regex,string,powershell,expression,Regex,String,Powershell,Expression,我一直在努力寻找将remove命令串在一起的最佳方法,但我不知道如何在一个字符串与多个字符串中实现这一点。。。 我想删除所有空格和下划线;我知道我可以单独这样做: $Name = "\Test Name\Test_Underscore 1_2" $NameFull1 = $NAME -replace '\s' $NameFull2 = $NameFull1 -replace '_','' TestNameTestUnderscore12 并有如下输出: $Name = "\Test Name
$Name = "\Test Name\Test_Underscore 1_2"
$NameFull1 = $NAME -replace '\s'
$NameFull2 = $NameFull1 -replace '_',''
TestNameTestUnderscore12
并有如下输出:
$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' | '_',''
我建议将需要删除的字符放入: 使用“字符类”,也称为“字符集”,您可以告诉正则表达式引擎只匹配几个字符中的一个。只需将要匹配的字符放在方括号中即可。如果要匹配
a
或e
,请使用[ae]
。您可以在gr[ae]y
中使用此选项来匹配gray
或gray
代码:
[\s\\]
将匹配空格、\
或\
管道符号(\
)必须位于字符串内,以便进行替换:
$NameFull = $NAME -replace '\s|_', ''
可能是
$NameFull1=$NAME-替换“[\s\u]”
?结果是\TestName\test下划线12
。您是否要替换\
?是的,我想替换字符串中的所有反斜杠。请检查我的答案,我用regext显示了最有效的方法,这正是我要找的。我不知道如何将两者联系起来,但角色类在这方面非常有效!非常感谢。