2017-01-23 1 views
-1

초기주의 사항 : 중복으로 표시하십시오. 이미 존재하는 경우 검색 방법을 모르겠습니다.찾기 * 메모장에서 유사한 줄 찾기 ++

는 다음과 같이 메모장에 몇 줄 유무 :

Line 1: a x a x a x a 
... 
Line m: a y a y a y a 
... 
Line n: a z a z a z a 

은 "..."어떤 내용이 다른 행을 나타냅니다.

그리고 내가해야 할 일은 다른 부분을 유지할 수있는 곳을 찾는 것입니다.

문제는 "a '의 인스턴스 중 일부만 바꿔야하기 때문에"a' '의 모든 인스턴스를 바꿀 수 없다는 것입니다. 이 경우에 따라서

를 "각 관련 행의 'A'의 두 번째 인스턴스를 대체", 나는 그것을

a 'variable data_1' a 'variable data_2' a 'variable data_3' a 

이있는 모든 행을 검색하고 교체해야

a 'variable data_1' **b** 'variable data_2' a 'variable data_3' a 

그리고 최종 결과는 다음과 같아야합니다

은 내가 몰라
Line 1: a x b x a x a 
... 
Line m: a y b y a y a 
... 
Line n: a z b z a z a 

: 어떻게 "텍스트의이 부분이 가변적"패턴을 어떻게 정의 할 수 있습니까?

NPP에서 수행 할 수없는 경우이를 수행 할 수있는 소프트웨어를 알고 있다면 알려 주시기 바랍니다.

답변

2

당신은 검색 할 수 있습니다

((a)\s*'[^']*'\s*)\2((?:\s*'[^']*'\s*\2)+) 

에 의해 대체 : 검색 패턴에서

\1**b**\3 

,

  • \1 우리가
  • 을 변경하려면 토큰 전에 블록
  • \2은 리피터입니다. 우리가 다른 값으로 대체하기 때문에 그 두번째 반복 우리
  • \3을 변경할 D 토큰 그룹에서 제외된다 우리

을 변경할 토큰 반복 토큰 번째 반복 후의 블록 대체 텍스트에

+0

감사합니다. 그러나 ((a) \ s + [^ \ s] + \ s +) \ 2 ((? : \ s + [^ \ s] + \ s + \ 2) +) 이 범위의 행 사이에 다른 콘텐츠가없는 경우 내가한다면, 그것은 첫 번째 사건에서 변화를 일으킨다. 현재 편집중인 항목이 전혀 작동하지 않습니다. –

+0

좋아, 네가 거기에서 한 일을 잘보고있다. –