有两个可以替换文本中的字符串,一个是string类中的Replace()方法,另一个是–replace操作符。它们的工作原理本质上却不同
Replace() 是大小写敏感,把目标字符串替换新字符串:
PS> 'Hello World.'.Replace('o', '0') Hell0 W0rld PS> 'Hello World.'.Replace('ell','oo') Hooo World
-replace 操作符默认是大小写不敏感(除非你使用-creplace才会大小写敏感),而且可以接受一个正则表达式进行匹配替换,这一点强大之处,很容易被人遗忘。
PS> 'Hello World.' -replace 'ell', 'oo' Hooo World. PS> 'Hello World.' -replace '.', '!' !!!!!!!!!!!!
如果你不知道 -replace 能否接收正则表达式,肯定会对上面第二个例子中结果很困惑。所以如果仍旧想使用 -replace 替换静态文本,请确保先转义你的文本。
PS> 'Hello World.' -replace [Regex]::Escape('.'), '!' Hello World!
荔非苔注:使用[Regex]多年了,竟然不知道里面还有一个Escape方法,小巧,方便,再次为.NET类库折服。
原文链接:How .Replace() and -replace differ
本文链接: https://www.pstips.net/e45ce.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!