如果我在包含-char-$-repeated char-
的字符串上使用Trim()
方法,例如"BL$LA"或"LA$AB",Trim()
也会在$
之后去除重复的字符。
例如:
$a = 'BL$LA'
$b = $a.Trim("BL$")
返回A
不是LA
,而是
$a = 'BM$LA'
$b = $a.Trim("BM$")
返回LA
。
有什么原因吗?还是我错过了什么?
Trim()
方法从字符串对象的开头和结尾删除给定参数中的所有字符(字符串自动转换为字符数组(。您的第二个示例似乎只在做您想要的操作,因为字符串的其余部分没有任何要修剪的字符。
示范:
PS C:\> $a = 'BL$LA'PSC:\>$a.Trim("BL$"(A PS C:\>$a = 'LxB$LA'PSC:\>$a.Trim("BL$"(xB$LA
要从字符串的开头和结尾删除给定的子字符串,您需要这样的东西:
$a -replace '^BL$|BL$$'
正则表达式细分:
^
匹配字符串的开头。$
匹配字符串的末尾。BL$
匹配文字字符序列"BL$"。...|...
是交替(匹配这些(子(表达式中的任何一个(。
如果您只想删除字符串开头的第一个$
的文本,您也可以执行以下操作:
$a -replace '^.*?$'
正则表达式细分:
^
匹配字符串的开头。$
匹配文字$
字符。.*?
将所有字符匹配到下一个(子(表达式(最短/非贪婪匹配(。