문자열의 여러 가능성을 대체 (제거)해야하고이 작업을 한 줄로 수행하려고합니다. 물건). 예를 들어, 각기 다른 레벨의 직위를 가진 많은 사용자가 있습니다 (Manager 1
, Manager 2
등). 일부는 숫자로 끝나지만 일부는 II
, III
, IV
등으로 끝납니다 (로마 숫자). 숫자를 제거하려면 다음을 사용합니다 (예 : 배열에서) :PowerShell에서 regexes를 사용하여 문자열에서 텍스트 제거
$_.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
내가이 일을하는 방법을 연구하고 한을 내가 정규식에 대한 책을 읽은 유지 대답은, 그리고 이것은 간단한 대답이지만, 나는이 상황에서 정규 표현식을 만드는 법을 이해하지 못하는 것 같습니다. 나는 regexes에 대해 많은 것을 읽고 시도해 왔지만 그것을 얻을 수없고 도움이 필요하지 않다. 위의 명령을 사용하고 제거하려고하는 항목을 제거 (아무 것도 대체하지 않는) 방법이 있습니까? 아니면 어려운 한계가 있으며 다른 것을 알아 내야합니까?
@AlanMoore - 나는 일부 수정 사항을 이해하지 않습니다. 그들은 내 것과 동일합니다. 일부는 현재 코드 형식으로되어 있습니다 (대문자 변경이 있음). 감사합니다. 그러나 다른 것은 변경되지 않았습니다. 오, 피드백에 감사드립니다. – STGdb