메모장에서 ^와 ~ 사이의 텍스트 찾기 및 바꾸기 ++


22

^ 기호와 ~ 기호 사이의 모든 텍스트를 제거하려는 큰 텍스트 파일이 있습니다. 이것은 라인 전체에서 작동해야합니다.

^*~찾기 상자에서 정기적으로 찾기 및 바꾸기를 시도했지만 바꾸기 상자에는 아무것도 없지만 결과는 0입니다.

답변:


24

정기적 인 찾기 및 바꾸기 에서는 불가능합니다 . Notepad ++ 6을 사용하는 경우 PCRE ( source ) 를 지원하는 새로운 정규식 엔진을 활용할 수 있습니다 .

Ctrl+ H를 눌러 찾기 및 바꾸기 대화 상자 를 열고 다음 조치를 수행하십시오.

Find what:          \^.*?~
Replace with:       
Wrap around:        checked
Regular expression: selected
. matches newline:  checked

이제 Alt+ A를 눌러 모든 발생을 바꿉니다.

Find 의 정규 표현식은 다음과 같이 구성됩니다.

  • \^리터럴 ^ 입니다.
  • .*? 정규식을 일치시킬 수있는 최소 문자 수입니다.
  • ~리터럴 ~ 입니다.

3
. *? ~를 [^ ~] * ~로 변경하면 PCRE를 사용하거나 사용하지 않고도 작동합니다.
barlop

1
@ barlop : 정규 표현식을 사용하여 찾기 및 바꾸기가 아닌 검색 모드일반 찾기 및 바꾸기 : 일반을 사용했습니다. 오해 였을 수도 있습니다. 어쨌든, 내가 올바르게 기억한다면 6 이전의 버전은 여러 줄 패턴을 지원하지 않았습니다.
Dennis

.*?나를 위해 일한 패턴의 문자 사이를 검색 할 수 ;<. 검색이 FIND입니다 그래서 ;.*?<교체 ;를 위해 선택한 옵션 Regular expression. matches new line
SherlockSpreadsheets

8

검색 \^.*?~하고 확인 하고 싶을 것 입니다. 개행과 일치합니다 :

여기에 이미지 설명을 입력하십시오

이것은 ^특별한 의미 가 있기 때문에 행의 시작과 일치합니다. 따라서 백 슬래시로 이스케이프 처리해야합니다 \^.

쓰기 ^*는 "행에서 여러 줄 시작"과 일치합니다. .*"모든 문자"와 일치하지만 기본적으로 개행과 일치하지 않습니다.


2
정규 표현식의 욕심 ​​많은 행동에주의하십시오. 여러 ~문자 가있는 경우 (즉, 여러 개의 일치 항목) 첫 번째 문자 ^부터 마지막 문자까지 일치합니다 ~.
17

@heavyd <question> 정말입니까? </ question>. 그는 *?게으르지 않은 것을 사용 하여 게으르지 .*?~않을 것 ~입니다. 괜찮습니다.
barlop

@ barlop : 그는 대답 한 직후에 댓글을 달았습니다. 닌자 편집이었습니다.
Der Hochstapler

2

\^[^~]*~ ^와 ~ 사이의 모든 항목 을 바꾸 려면 찾기 섹션에서이 정규식을 사용하십시오 .


독점적으로, PCRE가 필요하다고 가정하고 (? <= ^) [^ ~] * (? = ~) 테스트 할 n ++이 없지만 변경이 실패하면 (? <= ^ ) ~ (? <= \ ^)
barlop

독점적으로으로 교체하십시오 ^~.
Dennis

@Dennis 나는 ^와 ~ 사이의 모든 것을 바꾸고 싶지만 ^와 ~를 포함하지 않는 것을 의미합니다.
barlop

1
바꿀 경우 당신은 무엇을하지 않았다고 \^[^~]*~^~?
Dennis

@ 데니스 오 당신이 무슨 뜻인지, 좋은 지적을 참조하십시오.
barlop

0

시작 및 끝 문자와 비슷한 교체 요구 사항이 있습니다. 이것은 전망 이메일에서 나왔습니다. 멤버를 <방해하고 RemoveTextHere 사이에 모든 것이 제거 된 사람 이름을 원했습니다 >.

기발한

First1 Last1 <First1.Last1@email.com>; First2 Last2 <First2.Last2@email.com>; First3 Last3 <First3.Last3@email.com>; First4 Last4 <First4.Last4@email.com>;

Dennis는 내 솔루션에 가까웠 Find what: \^.*?~지만 리터럴 문자를 변경 Find what: \<.*?>한 다음 첫 번째 슬래시를 제거해야했습니다 Find what: <.*?>.

업데이트 Find what: <.*?> ; 비워 두십시오.

First1 Last1 ; First2 Last2 ; First3 Last3 ; First4 Last4

_

특수 문자 : *, $, \, +, ^, (), [, ], {}

특수 문자는 Jerry Jeremiah ( /programming/37742519/notepad-wildcard)에 설명되어 있습니다 .


그것은 질문에 대답하지 않습니다.
토토
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.