我正在编写一个脚本,该脚本将根据 csv 文件生成 AD 用户名。现在我有以下行工作。
Select-Object @{n=’Username’;e={$_.FirstName.ToLower() + $_.LastName.ToLower() -replace "[^a-zA-Z]" }}
截至目前,这采用名称并将其组合成 AD 友好名称。但是我需要将名称缩短到不超过 20 个字符。我尝试了几种不同的方法来缩短用户名,但我没有任何运气。
关于如何缩短用户名的任何想法?
最佳答案
可能最优雅的方法是在替换中使用积极的回顾:
... -replace '(?<=^.{20}).*'
只有在字符串开头有 20 个字符 (^.{20}
) 时,此表达式才匹配字符串的其余部分。
另一种选择是用前 20 个字符的捕获组替换:
... -replace '^(.{20}).*', '$1'
这会在字符串的开头捕获最多 20 个字符,并用捕获的组 ($1
) 替换整个字符串。
关于regex - 修剪超过 20 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39883443/