本例中演示在不提供大写字母表的前提下,快速将文本字符串在大写字母处分隔:
$text = 'MapNetworkDriveWithCredential'
[Char[]]$raw = foreach ($character in $text.ToCharArray())
{
if ([Char]::IsUpper($character))
{
' '
}
$character
}
$newtext = (-join $raw).Trim()
$newtext
荔非苔注:上面的例子短小,逻辑却非常巧妙。虽然不知道IsUpper的具体实现,但是如果让我设计它也应当使用大写字母的两个边界进行比较(A-Z=65-90),而非字母表遍历。
原文链接:Splitting Text at Uppercase Letters
本文链接: https://www.pstips.net/splitting-text-at-uppercase-letters.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

‘MapNetworkDriveWithCredential’ -creplace ‘\B[A-Z]\B’,’ ${0}’
谢谢胡洋的分享,这个小巧的正则表达式非常有用。
1.匹配前后被小写包围的大写字母。
2.通过空格和后置引用匹配项来替换。