본문 바로가기

연재/정규표현식

[정규표현식] Adobe Indesign(인디자인) Grep기능 활용



인디자인에서 Grep기능 활용: 결국은 정규표현식



 블로그에 연재물을 쓰면 어떨까 생각을 하고는 있었는데, 정규표현식을 요즘들어 제가 자주 쓰는 것 같아서 인디자인에서의 정규표현식을 첫번째 주제로 삼아서 글을 써보고자 합니다. 책 편집을 하다보면 반복되는 작업을 굉장히 많이 하게 되고, 가장 적나라하게 드러나는 예가 바로 사전일 겁니다. 사전 뿐만 아니라 지극히 평범한 책에서도 미리미리 스타일을 정의해서 작업을 하지 않았다면 (혹은 받은 원고가 애초에 스타일이 지정되어 있지 않다면) 앞이 깜깜할 수밖에 없는데요, 이 때 정규표현식에 대한 지식이 굉장히 도움이 됩니다. 예를 들면서 이야기를 해 보도록 합시다.




1. 점 하나는 글자 하나이다.


  Grep기능을 사용하는데에 있어서 필수적으로 이해를 하셔야 할 부분입니다. 점 하나는 글자 하나를 대변합니다. 만약 점 하나를 찍고 Grep으로 찾기를 돌리면, 글자 하나하나씩을 찾아가는 모습을 볼 수 있습니다. 자 이제 이 기능을 활용해 봅시다.



2. 괄호안에 글자 하나 들어있는 것 찾기

	
\(.\) 
	

  결론은 위와 같이 됩니다. 여기서 \(와 \)는 무엇일까요? 바로 정규표현식에서 (와 )라는 글자는 따로 사용 목적이 있기 때문에 (와 ) 대신에 \(와 \)를 써준 것입니다. (와 )는 정규표현식에서는 괄호안세 해당되는 문자 안쪽을 찾겠다는 것을 지정해주는 예약기호이기 때문에, 괄호 자체를 찾기 위해서는 \(와 \)를 사용해 주어야만 합니다. 따라서 위 식으로 Grep을 하게 되면 다음과 같은 것들을 찾아주게 됩니다.


(1)

(가)

(a)

(金)


  괄호 안에 문자가 두개 이상 들어있는 것은 찾지 못합니다. 이런 것들을 찾으려면 어떻게 해야할까요?



3. 괄호안에 글자 여러개 들어가 있는 것 찾기

	
\(.+\) 
	

  달라진 것은 글자 하나입니다. 점 뒤에 +가 붙었죠. +는 앞의 문자가 1회 이상 반복된다는 뜻입니다. 이 식을 사용한다면 아래와 같은 것들도 추가로 검색합니다.


(12)

(가나다라)

(政治)



4. 엔터키로 구분되는 제목 찾기


  엔터키는 \r로 구분됩니다. 만약에 각 장마다 반복되는 다음과 같은 형식의 제목이 있다고 칩시다.


1) 근대 한국사의 이해


  그리고 이 제목은 끝에 엔터키가 포함됩니다. 이런 형식을 찾으려면 아래와 같이 하면 됩니다.


	
.+\)\s.+\r 
	

  일단 괄호가 오기 전에 문자가 몇개든 올 수 있게 지정하였습니다. 설명부터 드리면, \s는 공백입니다. 닫는 괄호 뒤에 한칸이 항상 떨어진다는 것에 주목한 것입니다. 그리고 맨 마지막 종결은 \r, 즉 엔터키로 구분짓겠다는 뜻이지요. 위 정규표현식으로는 아래와 같은 것들이 Grep될 것입니다.


가) 정규표현식이란?

120) 이 내용에 더 자세히 알고 싶으면 필자의 논문을 참고할 것.

II) 현대사의 이해


  .을 이용하면 숫자 뿐만 아니라 다양한 것들을 지정시킬 수 있기 때문에 앞에 '가'나 'II'와 같은 문자가 반복되어도 상관이 없습니다. 닫는괄호인 )로만 구분이 되면 되구요, 그 괄호 뒤에 공백이 반드시 있어야 할 것입니다. 그리고 엔터키로 마무리가 되어야 하지요.



5. 부연 설명하는 괄호 찾기

	
\(.+:\s.+\) 
	

  위 정규표현식은 아래와 같은 부연설명 형식의 괄호를 찾을 겁니다.


(탐험: 같이 탐험해 보자는 의미)

(Like: 무언가를 좋아하다. 선호하다)

(政治: 정치)


  괄호 안의 모습을 좀 더 자세히 지정을 한거죠. :로 구분될 수 있도록 지정한 것입니다. 콜론 뒤에는 \s로 공백 하나가 와야 한다고 명기하였습니다.





 좀 더 다양한 예제가 있을 수 있지만 핵심 예제는 위와 같습니다. 위 내용 정도만 아셔도 원하시는 바를 충분히 Grep하실 수 있을 것입니다. 따로 시간들여 공부하실 가치가 있는 내용이라고 생각합니다. :)