Notepad++ - (해당 줄에서) 특정 문자까지 (줄별로) 어떻게 검색할 수 있나요?

Notepad++ - (해당 줄에서) 특정 문자까지 (줄별로) 어떻게 검색할 수 있나요?

나는 다음과 같은 여러 줄을 가지고 있습니다.

\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code

[각 줄에서 의 코드를 {내 코드로 바꾸고 싶습니다 .

  • \node항상 각 줄의 시작 부분에 있습니다.

  • {~이다~ 아니다줄 끝에.

나는 이미 (여기서) ^\\node.*\{or 같은 것을 찾아 시도했지만 둘 다 동일한 만족스럽지 못한 결과를 가져왔습니다. 즉 , 문서의 \\node.*\{맨 마지막 부분까지 전체 코드가 표시됩니다.{

답변1

실제로 Wrap around를 활성화하는 것은 완전히 괜찮습니다. 사실 그렇게 하는 것이 좋습니다.

조각이 줄의 시작 부분에 있음이 보장되므로 캐럿( ^) 앵커를 사용할 수 있습니다.

다음은 나에게 효과적입니다.

찾다: ^\\node\[[^{]*\{; 다음으로 교체:\\node[test{

^줄의 시작 부분에 대한 앵커입니다 . 특수 문자를 이스케이프 처리한 후 \\node\[text 와 일치합니다 . 여는 중괄호를 제외한 모든 문자를 가져옵니다. (여기서는 문자 클래스에 있기 때문에 이스케이프할 필요가 없습니다.) 그런 다음 여는 중괄호 자체를 가져옵니다.\node[[^{]*{\{


만약에 ... Some code here ... 중괄호를 포함할 수 있습니다:

찾다: ^\\node\[.*\{([^{]*)$; 다음으로 교체:\\node[test{$1

첫 번째 부분은 동일합니다. 그런 다음 .*가능한 한 많은 문자를 일치시킵니다. \{여는 중괄호와 일치한 다음 ([^{]*)$줄 끝까지 모든 문자를 일치시키고 캡처합니다. 가 지정 되었으므로 [^{]여는 중괄호와 일치하지 않으므로 이전 항목은 줄의 \{마지막 항목과 일치해야 합니다 .{

답변2

검색 / 바꾸기 대화 상자에서 찾을 내용을 사용하여 다음을 수행합니다.마디[.*{다음으로 교체:노드[테스트{성공적으로 교체...여기에 일부 코드가 있습니다...~와 함께시험각 줄에.

다음 옵션을 지정해야 합니다.

  • "둘러싸기"를 선택하지 마십시오.
  • "정규식"을 선택하십시오.
  • ".이 줄바꿈과 일치"를 선택하지 마십시오. 여기에 이미지 설명을 입력하세요

관련 정보