
몇백 쪽의 책 원고를 수십 번 반복하면서 눈이 빨개지도록 수정하고 또 수정했었습니다.
지침이 바뀌거나 오탈자를 찾거나 용어를 통일하느라 수정한 걸 다시 수정하는 일도 많았었죠.
네. 제가 그랬었습니다. 하하하;;;
정규식을 익힌 다음에는 1주일 동안 해야할 작업을 1-2시간만에 끝냈어요!
논문을 쓰거나 데이터를 정리하고 가공해야 하는 연구자,
수십 수백 쪽의 문서를 관리해야 하는 논문집 간사,
1년 내내 책을 편집해야 하는 출판편집인,
그리고 다양한 언어로 작성된 텍스트를 다루는 번역가까지
정규식을 익힌 후부터는 정규식 이전의 세계와 정규식 이후의 세계로 나뉠 겁니다.
사용법
정규식에서 사용하는 여러 가지 용어나 문법이 있습니다.
우선 실제로 사용해본 다음에 용어나 문법을 익혀도 늦지 않습니다.
우리는 공부가 목적이 아니라 사용이 목적이니까요!
왕초보에게 좋은 노트패드++ 프로그램을 기준으로 설명할게요.
혹시 설치하지 않으셨다면 노트패드++ 포스트를 참고하세요.
아래의 맛보기를 성공하시면 아마 손이 근질근질해질 겁니다.
또 어떤 작업을 할 수 있지? 하고요.
정규식 맛보기
2개 이상 공백을 1개로 바꾸기
우선 쉬운 연습을 해봅시다.
대한민국 애국가 1절입니다.
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
- 다양한 공백을 모두 1개의 공백으로 바꾸려면 어떻게 해야 할까요?
- 당장 생각나는 방법으로는 공백 2개를 공백 1개로 바꾸고, 이걸 한 10번 반복하면 되죠.
- 정규 표현식으로는 한방에 됩니다. (찾아바꾸기 창에서 정규 표현식을 체크해야 합니다.)
- 찾기 :
[ ]{1,20} - 바꾸기 :
(공백 1개)
- 찾기 :
- 정규 표현식을 풀어봅시다.
[]는 1글자를 의미합니다.{1,20}는 앞 문자의 최소값과 최대값 범위를 의미합니다.- 결국
[ ]{1,20}는 공백이 1개짜리부터 공백 20개까지의 패턴을 찾는 공식입니다.
- 문서를 다루다보면 공백으로 들여쓰기를 표현하거나 위치를 조정하는 경우가 많습니다.
- 이럴 때 간단하게 사용할 수 있습니다.
괄호 부분 찾기
이번에는 난이도를 조금 올려봅시다.
가끔 이런 부탁을 받을 때가 있습니다.
책에서 색인어 목록을 뽑아야 하는데 «…»로 표시한 부분을 뽑아주세요.
1. <<동해물>>과 <<백두산>>이 마르고 닳도록
하느님이 보우하사 우리나라 만세
2. <<남산>> 위에 저 소나무 철갑을 두른 듯
바람 서리 불변함은 우리 기상일세
3. 가을 하늘 공활한데 높고 구름 없이
밝은 달은 우리 가슴 일편단심일세
4. 이 기상과 이 맘으로 충성을 다하여
괴로우나 즐거우나 <<나라>> 사랑하세
<후렴>
무궁화 삼천리 화려 <<강산>>
대한 사람 대한으로 길이 보전하세
- 예시처럼 짧으면 손으로 해도 되지만 500쪽짜리 책이라면 얘기가 전혀 달라지죠.
- 정규식은 모르지만 우선 한방에 지울 패턴을 생각해봅니다.
>>부터<<사이를 지우고 엔터를 넣으면 되지 않을까요? 한번 해봅시다.- 찾기 :
>>[\s|\S]+?<< - 바꾸기 :
>>\r\n<<(리눅스는>>\n<<, 맥은>>\r<<)
- 찾기 :
- 그럼 이렇게 나옵니다.
1. <<동해물>>
<<백두산>>
<<남산>>
<<나라>>
<<강산>>
대한 사람 대한으로 길이 보전하세
- 첫줄과 끝줄의 간단한 건 손으로 지우고, 중복 제거나 가나다순 정렬이 필요하면 노트패드++ 포스트를 참고하시면 됩니다.
- 정규 표현식을 풀어봅시다.
[]가 1글자를 표시한다는 건 위에 있었죠.|는 또는(or)이라는 뜻입니다.- 그러니까
[\s|\S]는\s또는\S라는 뜻이죠. \는 정규식에서 특수한 용도로 사용하겠다는 뜻입니다.\s는 모든 공백문자를 뜻합니다. 공백문자에는 엔터, 공백(스페이스), 탭 등이 있습니다.\S는 공백문자가 아닌 모든 문자를 뜻합니다.+는 앞에 나오는 글자가 1개 이상인 걸 말하고요.?는 가장 짧은 패턴으로 찾겠다는 걸 뜻합니다.\r\n(윈도우)이나\r(맥)이나\n(리눅스)은 엔터를 말합니다.- 종합하자면
>>와<<사이에 엔터든 공백이든 아무 문자든 모든 텍스트 중에서 가장 짧은 패턴으로 찾겠다는 뜻이 되죠.
- 제 설명이 부족할 테니 한번 더 찾아바꾸기를 실행해보세요.
- 찾아바꾸기 결과를 보고 ‘내가 이걸 쓰면 노가다가 좀 수월해지겠는데?‘라는 생각이 든다면 당신은 정규 표현식이 필요한 사람입니다.
유의 사항
- 원본을 절대로 직접 수정하지 말고, 항상 복사본을 만들어 수정하는 습관이 필요합니다.
- 한번쯤은 이 말을 통감하실 거에요. 네, 자료를 날려먹는 건 통과의례에요. 정규식의 세계로 오신 걸 축하합니다!