本例中演示在不提供大写字母表的前提下,快速将文本字符串在大写字母处分隔:
$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.通过空格和后置引用匹配项来替换。