您是否知道可以在PowerShell中检测字符串是否以特定字符结尾还是以某个字符开头? 托马斯·雷纳(Thomas Rayner)之前在CANITPRO.NET上分享了如何通过使用正则表达式或更简单地称为Regex轻松完成此操作。

最初在
博客中 。
请考虑以下示例:
'something\' -match '\\$' #returns true 'something' -match '\\$' #returns false '\something' -match '^\\' #returns true 'something' -match '^\\' #returns false
在前两个示例中,脚本检查字符串的结尾以查看它是否以反斜杠结尾。 在最后两个示例中,脚本检查字符串以查看它是否以一个开头。
前两个匹配的正则表达式模式为\\ $。 那是什么意思 好吧,第一部分\\表示“反斜杠”(因为\是转义字符,我们基本上是在转义转义字符。最后一部分$是行尾的信号。实际上,我们拥有的是“任何东西根本上,最后一行是反斜杠“”,这正是我们想要的。
在后两个示例中,我只是将\\移至行的开头,并以^而不是以$结尾,因为^是行的开始信号。
现在您可以执行以下操作:
$dir = 'c:\temp' if ($dir -notmatch '\\$') { $dir += '\' } $dir #returns 'c:\temp\'
在这里,脚本检查字符串'bears'是否以反斜杠结尾,如果不是,我要附加一个反斜杠。