Powershell как заменить 2 последних символа в каждом слове?
"Иванов Иван Иванович" -replace '\w{2}(\s|$)','*$1'
Иван* Ив* Иванов*
В общем для чего мне это было нужно, я хочу брать из служебной записки ворд ФИО которое укажет пользователь, следовательно пользователи бывают разные и ФИО могут указать не в именительном падеже, поэтому я принял решение обрезать 2 буквы от каждого слова и заменять звездочками, пробовал на разных ФИО в АД вроде без проблем ищет в 100% случаев нужного мне человека, возможно мой код полнейший колхоз))) но я до этого дошел сам и это главное))) у кого будут предложения по оптимизации, всегда рад
P.S. на названия переменных внимания не обращайте)) это из черновика
$familiya = $fio |% {"{0}" -f $_.split(' ')} |% {$_.Substring(0, $_.length - 2) }
$imya = $fio |% {"{1}" -f $_.split(' ')} |% {$_.Substring(0, $_.length - 2) }
$otchestvo = $fio |% {"{2}" -f $_.split(' ')} |% {$_.Substring(0, $_.length - 4) }
$searchname = "$($familiya)* $($imya)* $($otchestvo)*"
$aduser = Get-ADUser -Filter {Name -like $searchname} -Properties Description