2013-05-03 3 views
0

는 파워 쉘 정규식 명령은 내가 "M"과 텍스트 문자열의 마지막 연속 제로 교체가 사용할 수입니다.파워 쉘 정규식

$Pattern = @("00", "", "000000001", "000120000") 

최종 결과 :

00M123456 
M12345678 
0000000M1 
00M120000 

감사합니다 예를 들어. 다음 정규식에 대한

답변

4

검색 : 문자열의 시작 ^에서 0의 연속 문자열

"^(0*)0" 

정규식 검색합니다. 교체 용을 제외한 모든 0을 캡처합니다. 우리가 만지지 않는 0의 수를 기록하기 만하면되기 때문에 "^0(0*)"도 작동합니다. 대체 문자열

: $1인지

'$1M' 

참고 정규식에 (0*) 인 제 캡처 그룹에 의해 캡처 된 텍스트를 나타낸다. @SegFault에 의해

예 :

"000120000" -replace "^(0*)0", '$1M' 
+0

이 라인은 "$ 패턴 |를 ForEach-오브젝트 {$ _ -replace"읽기시겠습니까^(0 *) 0 ","$ 1M ""를? 감사. 미안하지만, 나는 정규 표현식에 너무 익숙하지 않다.하지만 나는 이것이 갈 길이 될 것이라고 생각했다. – atownson

+0

@atownson : 죄송하지만 PowerShell에 익숙하지 않습니다. 나는 PowerShell에서 .NET 정규식을 사용하여 정규식을 쓸 수 있습니다 알고 있지만, 나는 그것을 할 PowerShell 명령을 쓸 수 없습니다. – nhahtdh

+2

이 대답은 좋지만, PowerShell의 대체 문자열을 작은 따옴표를 사용합니다. ' "000120000"-replace "^ (0 *) 0", "$ 1M"예를 들어. – Segfault