2017-01-05 4 views
1

REGEX (PowerShell)를 사용하여 두 줄을 넘는 텍스트 파일에서 패턴을 찾고 새 텍스트로 바꾸고 공백을 보존하고 싶습니다. 예 텍스트 :regex 대체 공백 유지

ObjectType=Page 
    ObjectID=70000 

내 일치하는 문자열이 내가 원하는 결과는

ObjectType=Page 
    ObjectID=88888 

문제입니다

RunObjectType=Page;\s+RunObjectID=70000 

입니다 내 대체 문자열

RunObjectType=Page;`n+RunObjectID=88888 

반환

입니다
 ObjectType=Page 
ObjectID=88888 

원래 간격을 유지해야합니다. 문제를 복잡하게하기 위해 간격의 양이 변경 될 수 있습니다.

제안 사항?

답변

1

활용 캡처 그룹과 교체 패턴에서 해당 그룹에 대한 역 참조가 :

$s -replace 'RunObjectType=Page;(\s+)RunObjectID=70000', 'RunObjectType=Page;$1RunObjectID=88888' 

에서, (\s+)regex demo

를 참조하면 캡처 그룹 1 버퍼에 모든 공백과 역 참조로 $1을 사용하면 값이 결과에 삽입됩니다.

enter image description here

+0

덕분에, 나는 그것이 단순하게 알고 있었다 그러나 나는 그것을 볼 수 없었다. – Greatscott000