작성일자
카테고리 디자인툴/서브라임 텍스트

다음은 얼마전에 발간한 "서브라임 텍스트 - 프로그래머와 디자이너가 선택한 텍스트 에디터" 서적의 일부입니다.


정규 표현식(Regular Expression)이란 불규칙적으로 반복되는 패턴에서 일정한 규칙(Regular)을 만드는 표현식을 말합니다. 프로그래밍 작업뿐 아니라 일반적인 문서 작업에서도 응용할 수 있는 분야입니다. 우선 정규표현식이 어떻게 생겼는지 보겠습니다.


(?:Sw|P)i(?:tch|s{2})\s(?:it\s)?of{2}!


처음 보면 무슨 암호처럼 보이고 무엇을 의미하는지 전혀 알 수 없습니다. 정규 표현식에서의 일부 글자와 기호는 특정한 작업을 하게 돼 있습니다. 따라서 일반 글자에 이러한 특수 문자나 기호가 사용되어 암호처럼 느껴지지만 그 역할을 알고 나면 한눈에 무엇을 의미하는지 알 수 있습니다. 그렇기 때문에 정규 표현식을 처음 대하면 어렵게 생각되지만 사용하다 보면 생각보다 어렵지 않다는 사실을 알 수 있습니다.


[그림1-127 위키피디어의 정규 표현식 예제]


I watch three climb before it's my turn.  It's a tough one.  The guy before me tries twice.  He falls twice.   After the last one, he comes down.  He's finished for the day. It's my turn.  My buddy says "good     luck!" to me.  I noticed a bit  of  a problem.    There's  an outcrop  on this  one.   It's about halfway up the wall.   It's not a


위 문장은 위키피디어의 정규 표현식 페이지 에 나오는 예제입니다. 단어와 단어 사이에 공백이 두 개 이상인 곳이 여러 곳에 나타나는데, 위키피디어에서는 각 문장의 끝과 시작 사이에 공백이 두 곳 이상 있는 경우는 선택하고 공백이 하나 있으면 제외하는 방법을 보여줍니다. 위 문단을 서브라임 텍스트로 옮겨서 찾기 및 치환으로 나타내면 다음과 같습니다.


[그림1-128 문장과 정규 표현식을 서브라임 텍스트에 입력]


정규 표현식 버튼이 눌린 상태에서 Find What에 아래의 정규 표현식을 입력하면 각 문장 사이의 공백을 선택합니다. 특히 문장 사이가 아닌 단어 사이(파란색 박스 부분)는 선택되지 않습니다. 이처럼 정규 표현식을 이용하면 원하는 곳을 선택해 원하는 글자로 치환할 수 있습니다. Replace With에 공백 한 칸을 입력하고 Replace All 버튼을 클릭하면 선택된 부분은 모두 공백 한 칸으로 치환됩니다.


(?<=\.) {2,}(?=[A-Z])



[그림1-129 스페이스 2개 이상 일치]


먼저 찾기 입력란에 스페이스와 {2,}를 입력하면 위와 같이 공백이 두 개 이상인 곳이 선택됩니다. 중괄호 안의 앞의 숫자는 최소를 의미하고 뒤의 숫자는 최대를 의미하지만 생략했기 때문에 무한대를 의미합니다. 위 그림에서는 공백이 희미한 점으로 표시되는데, 이렇게 하려면 사용자 설정 파일에서 "draw_white_space": "all"을 설정하면 됩니다.


[그림1-130 마침표를 본래의 기능으로 전환]


입력란에서 공백 앞에 마침표를 입력하면 공백이 두 곳 이상 있는 곳의 글자까지 선택됩니다. 정규 표현식에서 마침표는 특수한 기능을 하며 하나의 글자를 선택합니다. 글자나 기호, 공백 등 모든 것이 해당됩니다. 따라서 문장 부호의 마침표뿐만 아니라 문장 내 단어의 마지막 글자도 선택됐습니다.

마침표를 특수 기능이 아닌 마침표 자체를 나타내려면 마침표 앞에 백스페이스(\)를 추가해 이스케이프하면 됩니다. 그러면 마침표 기호에 해당하는 것만 선택됩니다.


[그림1-131 스페이스 다음의 첫 대문자 일치]


이번에는 입력란 끝에 [A-Z]를 추가했더니 단어의 첫 글자가 선택 범위에 추가됐습니다. 이것은 알파벳의 모든 대문자를 선택하는 기능을 합니다.

지금까지 한 문단에서 마침표 다음에 공백이 두 개 이상인 곳을 선택하는 작업을 했는데 이대로 치환하면 안 되므로 선택된 부분에서 마침표와 문장의 첫 글자를 선택에서 제외해야 합니다. 이들 정규 표현식은 선택의 범위를 좁히기 위해 사용된 것일 뿐입니다.


[그림1-132 마침표와 문장의 첫 대문자 제외]


먼저 제외할 정규 표현식의 앞에는 괄호로 묶고 ‘?<=’를 추가합니다. 이것은 앞에 추가된 것을 제외할 때 사용합니다. 제외할 정규 표현식의 뒷부분도 괄호로 묶고 ‘?=’를 사용합니다. 이 상태에서 Replace All 버튼을 클릭하면 선택된 곳이 공백 하나로 치환됩니다.


[그림1-133 정규 표현식 전용 프로그램 RegExr]


정규 표현식을 제대로 파악하려면 위와 같은 툴을 사용하는 것이 편리합니다. 정규 표현식은 사용되는 편집기나 언어마다 다를 수 있기 때문입니다. 또한 치환 버튼을 누를 필요 없이 입력한 대로 바로 변경되어 표시되며, 정규 표현식에서 사용되는 각종 특수 기호의 목록과 해당 기능에 대한 설명도 제공됩니다. 

저작자 표시 비영리 변경 금지
신고
BlogIcon 주피터쉴드

포스팅과 관련된 글은 아니지만, 블로그 사이드바에 있는 잉베이맘스틴 연주 동영상 정말 멋지네요.
어린 여자 기타리스트가 카피한 것 같은데 대단한 실력이네요.. 호홋..
포토샵 배워볼려고 들렀는데, 앞으로 자주 찾아올게요~

BlogIcon 베누시안

네, 실력이 대단하죠.

노피자

안녕하세요
출판사 재직중인 회사원입니다
담당 업무는 인터넷 서점 쇼핑몰 관리입니다

기존에 있는 인터넷 서점에 덧붙여
요즘 모바일이 대세라서 핸드폰에서도 쇼핑 결제 가능하도록
모바일 서점 쇼핑몰을 계획중입니다

여러 가지 모색 중에 워드프레스를 알게 되었구요
코딩에 대한 이해만 있으면
초보자도 워드프레스로 모바일 서점 쇼핑몰을
만들 수 있을까요??
답변 부탁드립니다

BlogIcon 베누시안

가장 기본이 되는 것이 워드프레스에 대한 이해입니다. 그런 다음 우커머스에 대해 아셔야 하고 코딩 실력이 있으면 더 좋습니다. 코드를 몰라도 프리미엄 테마를 잘 사용하면 됩니다.

비밀댓글입니다

이름

관리자의 승인을 기다리고 있는 댓글입니다

티스토리 툴바