Мне нужно заменить (удалить) несколько возможностей текста в строке, и я пытаюсь сделать все это в одной строке (вместо того, чтобы иметь кучу, если это сделать материал). Например, у меня есть несколько пользователей с названиями заданий, все на разных уровнях (Manager 1
, Manager 2
и т. Д.). Некоторые из них заканчиваются цифрами, но некоторые из них заканчиваются II
, III
, IV
и т. Д. (Римские цифры). Я использую следующее, чтобы удалить числа (да, в массиве):Использование регулярных выражений в PowerShell для удаления текста из строки
$_.CSVJobTitle = ((Get-Culture).TextInfo.ToTitleCase($objCSV."Job Title".ToLower())) -Replace " \d+$"
И это отлично работает. Он удаляет номера из всех названий заданий. Потому что я тоже делаю титул, когда в названии должности III
, я в конечном итоге с Iii (используя правильный случай). Но, когда я пытаюсь добавить больше к вышесказанному:
$_.CSVJobTitle = ((Get-Culture).TextInfo.ToTitleCase($objCSV."Job Title".ToLower())) -Replace " \d+$","ii$","iii$","iv$"
Я получаю следующее сообщение об ошибке:
The -ireplace operator only permits 2 elements on the right-hand side, not 4
Так я исследовал, как сделать эту работу, и я продолжаю читать о регулярных выражениях это ответ, и я уверен, что это простой ответ, но я не могу понять, как заставить регулярное выражение работать в этой ситуации. Я читал и много пробовал по регулярным выражениям и просто не могу получить его и нуждаюсь в помощи. Есть ли способ использовать указанную выше команду и удалить (заменить ничем) элементы, которые я пытаюсь удалить? Или есть жесткий предел, и мне нужно выяснить что-то еще?
@AlanMoore - Я не понимаю, некоторые из ваших правок. Они идентичны моим. Некоторые из них теперь отформатированы как код (и я вижу изменение для символов верхнего регистра) - спасибо, но другие не изменились. О, хорошо, оцените отзывы. – STGdb