메모장++ 각 줄의 첫 번째 공백 뒤에 문자를 추가하려고 합니다.

메모장++ 각 줄의 첫 번째 공백 뒤에 문자를 추가하려고 합니다.

나는 그 안에 무작위 수의 공백이 있는 30,000줄의 텍스트를 가지고 있습니다. 각 줄의 첫 번째 SPACE에만 문자를 추가해야 합니다. 무엇이든 제안할 수 있는 사람이라면 누구나 크게 감사하겠습니다.

답변1

  • Ctrl+H
  • 무엇을 찾다:^\S+\h\K
  • 다음으로 교체:%
  • 둘러보기 확인
  • 정규식 확인
  • Replace all

설명:

^           # beginning of line
  \S+       # 1 or more non space
  \h        # 1 horizontal space
  \K        # forget all we've seen until this position

대사:

%           # the character to insert

주어진:

I have 30,000 lines of text that have randon 
number of spaces in them. I need to add a character 
to just the first SPACE in each line. 
Any who can suggest anything would be 
greatly appreciated.

주어진 예에 대한 결과:

I %have 30,000 lines of text that have randon 
number %of spaces in them. I need to add a character 
to %just the first SPACE in each line. 
Any %who can suggest anything would be 
greatly %appreciated.

여기에 이미지 설명을 입력하세요

답변2

TextPad를 사용해 보세요. 매크로를 기록한 다음 재생할 수 있습니다. 따라서 첫 번째 줄에 수행할 작업을 기록하고 첫 번째 줄을 완료한 후 커서를 다음 줄의 시작 부분에 두십시오. 그런 다음 파일이 끝날 때까지 매크로를 재생하면 됩니다. 아니면 재생 매크로 키를 누르고 있으면 됩니다.

https://www.textpad.com/

답변3

당신이 찾고있는 것은 정규 표현식입니다. 가장 먼저 하고 싶은 일은 검색을 정규식으로 바꾸는 것입니다.

여기에 이미지 설명을 입력하세요

이 문제를 해결하는 방법을 정확히 알고 있다고 생각해서 기쁘네요.

https://regex101.com/r/aW4gG2/1

원하는 표현식은 다음과 같습니다.
찾기: (^.*?)( )
바꾸기:\1#\2

이것이 작동하는 방식은 정규식에서 ()"캡처"를 의미하는 다음과 같습니다. 이는 매우 구체적인 그룹을 찾은 다음 \1, \2 또는 \3으로 대체하여 참조할 수 있음을 의미합니다. 숫자는 1부터 시작하고 여는 괄호에서 계산합니다.

^줄의 처음부터 시작한다는 뜻이다. (인서트가 첫 번째 공간을 덮기를 원하기 때문에 우리가 앞쪽에서 시작하여 첫 번째 공간을 찾을 것입니다)

.*?이 부분은 공백 앞의 첫 번째 단어를 찾습니다. 한 그룹에서 문자( .)를 가능한 한 많이( *) 만들되 필요한 최소한의 문자로 만들어 이를 수행합니다 ?. 물음표가 없으면 모든 문자(모든 공백 포함)를 캡처하게 됩니다.

( )이 부분은 두 번째 그룹이 첫 번째 그룹 다음의 공간이라는 것을 의미합니다. 이 공간이 첫 번째 공간이어야 합니다. 이것이 우리가 캐릭터를 삽입하려는 것입니다.

대체

\1#\2

\1첫 번째 문자 집합을 나타냅니다. 그리고 *표현식의 는 문자 집합이 0을 포함한 임의의 길이의 단어일 수 있음을 의미합니다.

#삽입 문자입니다

\2\물론 공간이다.

결과적으로 #모든 첫 번째 공백 앞에는 가 배치됩니다. 첫 번째 공백 이후에 원하는 경우 대체를 조정하는 것만 큼 간단합니다.

\1\2##한 줄마다 첫 번째 공백을 넣습니다 .


이것이 정규식의 힘입니다. 간단한 찾기 및 바꾸기로 어떤 매크로보다 더 정확하게 삽입을 수행할 수 있습니다. 유연하고 빠르며 대부분의 경우 그다지 어렵지 않습니다.

RegEx가 무엇이고 왜 유용한지 설명하는 훌륭한 시작 튜토리얼이 있습니다. [RegExOne]. REO는 제가 이해하게 된 것입니다.

이것은 많은 사람들이 추천하는 튜토리얼인데, 솔직히 저는 이해가 잘 되지 않았습니다. [RegEx.정보]

나는 실제로 RegEx.info로 돌아간 적이 없습니다. 나는 곧바로 뛰어 들었습니다.메모장++ 문서실제로 이 시점에서는 매우 도움이 되었습니다. 물론 다음으로 테스트할 수 있습니다.정규식101]. 당신이 하고 싶은 유일한 일은 /gm표현식에 를 추가하는 것 뿐입니다. 그런 다음 TestString에 스니펫을 붙여 넣고 제대로 될 때까지 연습하면 됩니다.

여기에 이미지 설명을 입력하세요

답변4

이에 대한 매우 간단한 해결책이 있습니다.

Notepad++에 이미 뭔가가 있다는 것을 기억했습니다.

  • 바꾸기 창을 엽니다
  • 찾기 필드에 "^"를 입력하고 공백이나 찾으려는 항목을 입력
    하세요. 이렇게 하면 줄 시작 부분에 있는 항목만 검색됩니다.
  • 바꿀 내용 필드에 필요한 것을 입력하세요.
  • 검색 모드를 "정규식"으로 설정
  • 모두 바꾸기를 클릭하세요.
  • 완료

자세한 내용은

관련 정보