에디트플러스 정규식

2013년 10월 04일
정규식은 보통 텍스트에 덧붙여서 확장된 검색 옵션을 지정하는 특수한 기호들을 포함합니다. 정규식을 이용하면 보다 정교하게 텍스트를 검색할 수 있습니다

예를 들어 "[0-9]"와 같은 정규식을 지정하면 숫자만을 검색합니다. 비슷한 예로 "[^0-9]"와 같은 정규식을 지정하면 숫자가 아닌 글자만을 검색합니다.

에디트플러스에서는 다음과 같은 정규식을 찾기와 바꾸기, 여러 파일 찾기 명령에서 지원합니다.

설명
\t 탭 문자를 찾습니다.
\n 줄 바꿈 문자를 찾습니다.
. 모든 문자를 찾습니다.
| 이 기호의 양쪽에 있는 두 글자를 모두 찾습니다. 예를 들어 "a|b"를 지정하면 "a"와 "b"를 모두 찾습니다.
[] 대괄호 범위의 모든 문자를 찾습니다. 예를 들어 "[ab]"를 지정하면 "a"와 "b"를 모두 찾습니다. 또 "[0-9]"를 지정하면 0부터 9까지의 모든 숫자를 찾습니다.
[^] 대괄호 범위의 모든 문자를 제외한 문자를 찾습니다. 예를 들어 "[^ab]"를 지정하면 "a" 와 "b"를 제외한 모든 문자를 찾습니다. 그리고 [^0-9]"를 지정하면 숫자가 아닌 모든 문자를 찾습니다.
* 별표 왼쪽에 있는 문자가 0번 또는 그 이상 일치하는 텍스트를 찾습니다. 예를 들어 "be*"를 지정하면 "b"와 "be", "bee"를 찾습니다.
+ 플러스 기호 왼쪽에 있는 문자가 1번 또는 그 이상 일치하는 텍스트를 찾습니다. 예를 들어 "be+"를 지정하면 "be" 와 "bee"를 찾지만 "b"는 찾지 않습니다.
? 물음표 왼쪽에 있는 문자가 0번 또는 1번 일치하는 텍스트를 찾습니다. 예를 들어 "be?"를 지정하면 "b" 와 "be"를 찾지만 "bee"는 찾지 않습니다.
^ ^기호 오른쪽에 있는 문자가 줄의 처음 글자인 경우를 찾습니다. 예를 들어 "^A"를 지정하면 줄의 처음 글자가 "A"인 경우를 찾습니다.
$ $기호 왼쪽에 있는 문자가 줄의 마지막 글자일 경우를 찾습니다. 예를 들어 "e$"를 지정하면 줄의 마지막 글자가 "e"인 경우를 찾습니다.
() 식을 해석하는 순서를 바꾸거나 식을 태그로 표시할 때 사용합니다.
\ 이스케이프 문자로 쓰입니다. "\" 문자 자체를 검색하려면 "\\"로 나타내어야 합니다.

태그로 표시된 식은 ()로 둘러 싼 식을 말합니다. 태그로 표시된 식은 \0, \1, \2, \3등과 같은 식을 사용하여 바꿀 말 항목에서 지정할 수 있습니다. \0은 일치된 텍스트 전체를 나타내고 \1은 첫 번째 태그로 표시된 부분을 나타내고 \2는 두 번째, 이런 식으로 지정할 수 있습니다. 다음의 예를 참고하십시오.

Original    Search     Replace     Result
abc     (ab)(c)    \0-\1-\2    abc-ab-c
abc     a(b)(c)    \0-\1-\2    abc-b-c
abc     (a)b(c)    \0-\1-\2    abc-a-c
  • Profile
    2013 년 10 월 04 일 (18:04)
    aaa|bbb|ccc|{ddd,eee,fff}|ggg|hhh
    aaa|bbb|ccc|{ddd|eee|fff}|ggg|hhh
    aaa|bbb|ccc|{ddd|eee|fff}|ggg|hhh
    aaa|bbb|ccc|{ddd|eee|fff}|ggg|hhh
    aaa|bbb|ccc|{ddd|eee|fff}|ggg|hhh
    aaa|bbb|ccc|{ddd|eee|fff}|ggg|hhh


    와 같은 데이터가 있습니다. 이 중에서 {} 안에 있는 문자 중에 |(파이프)를 ,(콤마)로 바꾸고 싶다면
    전체 바꾸기로는 불가능하므로 정규식을 이용해야 합니다.
    찾을 말 : {(.*)\|(.*)\|(.*)}
    바꿀 말 : {\1,\2,\3}






    {(.*)\| : {로 시작해서 |(파이프) 전까지 글자가 \1(첫번째)로 치환됩니다.
    (.*) : 가운데 \2(두번째)로 치환됩니다.
    \|(.*)} : |(파이프)로 시작해서 } 로 끝나는 사이의 글자가 \3(세번째)로 치환됩니다.

    |(파이프)는 \| 이렇게 표현해야 일반 문자로 인식합니다.

    결과는
    aaa|bbb|ccc|{ddd,eee,fff}|ggg|hhh 이렇게 치환됩니다.


    수십만건의 데이터를 한번에 치환이 가능합니다. 하루종일 삽질해야 하는 작업이 단 몇분만에 처리가 됩니다.


    정규식을 좀더 익혀두면 손으로 하나씩 바꿔야 하는 삽질을 줄일 수 있습니다.


    style="width:230px;"
    style="width:30px;"
    style="width: 230px;"

    찾을 말 : "width:(.*);"
    바꿀 말 : "width:\1px;"
    답변 달기
  • Profile
    2013 년 10 월 04 일 (18:05)
    http://blog.naver.com/pareko?Redirect=Log&logNo=20160833223
    답변 달기