조건식을 이용하여 원하는 문자열 찾기조건식을 이용하여 원하는 문자열 찾기

Posted at 2007. 6. 14. 19:03 | Posted in 한글 강좌_팁

문서를 작성하다보면 문서 내용에 data1.dat, data2.dat, data3.dat .... data9.dat...처럼 문서 중간 중간에 반복된 패턴으로 들어가는 단어들이 있습니다. 

예로 든 위의 내용에서는 data다음에 숫자가 오고 뒤에 .dat가 오는 형식입니다.

그런데  문서 중에서 data1.dat, data2.dat, data3.dat .... data9.dat를 찾으려면 어떻게 해야할까요?   데이터 수가 data1.dat, data2.dat, data3.dat .... data9.dat처럼 9개라면 불편하지만 찾기에서 data1.dat를 찾고 다음 ata2.dat를 찾고하여 9번만하면 됩니다. 그런데 이게 99번까지 있는 것이라면 아주 아주 귀찮게 됩니다.

이렇게 특정한 패턴으로 있는 단어를 찾을 때 유용한게 조건식입니다.  한글에서는 조건식이라고 하는데 정규식이라고 하기도하고 패턴식이라고도 합니다.  텍스트의 특정한 패턴을 이용하여 검색하는 방법입니다.

한글에서는 조건식을 이용하면 쉽게 찾을 수 있습니다.

조건식을 이용한 찾기

조건식을 이용한 찾기


조건식을 이용하면 위의 그림처럼 쉽게 찾을 수 있습니다.  data 다음에 \d가 들어가 있는데 \d는 숫자를 찾는다는 뜻입니다.  그러니 data 다음에 숫자가 오고 다음에 .dat가 오는 모든 것을 찾게 됩니다.

조건식을 사용하려면 그림에서처럼 찾기에서 조건식을 체크해야 합니다.

조건식을 체크하지 않고 한다면 어떻게 될까요?
data\e.dat 자체를 찾기 때문에 아무 것도 찾지를 못하고 찾는 문자열이 없다고 나타납니다.

찾기에서 조건식을 사용하지 않은 경우

찾기에서 조건식을 사용하지 않은 경우



조건식은 내용을 찾을 때만 사용합니다. 특정한 조건을 주어 조건에 맞는 문자열로 바꾸는 것은 할 수 없기 때문입니다.

조건식을 이용하면  숫자만 찾거나 영문만 찾거나 한글만 찾거나 하는 것도 가능합니다.

한글에서 지원하는 조건식을 다음과 같으니 찾기할 때 유용하게 사용하기 바랍니다.(조건식 내용은 한글의 도움말에 있는 내용입니다.)

구문

설명

예 (찾을 내용 : 결과)

임의의 문자 하나

.

줄 나눔 문자를 제외한 모든 단일 문자를 찾습니다. 빈칸과 탭을 포함합니다.



?

? 앞의 식이 한번도 일치하지 않거나 또는 한번 일치하는 경우

[0-9][0-9]? : "0" 또는 "00" ~ "99"years? : "year" 또는 "years"

최대 - 0번 이상

*

* 앞의 식을 0번 이상 찾습니다. 즉, * 앞의 식이 한번도 일치하지 않거나 또는 여러 번 일치하는 경우를 찾습니다.

[0-9]*t : "t" 또는 "123t"

최대 - 1번 이상

+

* 앞의 식을 1번 이상 찾습니다.


문자 집합 중 한 문자

[ ]

[ ] 안에 지정한 문자 중 하나를 찾습니다.

w[io]n :"win" 또는 "won"

문자 범위 내의 한 문자

-

[ ] 안에 지정한 문자 중 하나를 찾을 때, 대시(-)를 사용하여 문자 범위를 지정할 수 있습니다. 시작 문자와 끝 문자 사이에 대시(-)를 입력하여 오름차순으로 범위를 지정합니다.

[r-t]ight : "right" 또는 "sight"

문자 집합에 없는 문자

^

[ ] 안에서 ^ 다음에 나오는 문자 집합에 없는 문자를 찾습니다.

t[^a-m]ck : "tock" 또는 "tuck" ("tack" 또는 "tick"은 찾지 않음)

 


[주의] ^가 패턴식의 맨 처음 나오면 단어의 처음을 나타냅니다.

^T : That, This 등 T로 시작하는 단어의 "T"

패턴식의 그룹화

( )

부분식을 그룹화합니다.


이스케이프 문자

\

백슬래시(\) 다음에 나오는 문자를 찾습니다. 조건식 표기에 사용되는 문자를 일반 문자로 찾을 때 유용합니다.

\. : 조건식 기호(.)가 아닌 마침표(.)

태그가 지정된 식

{ }

중괄호로 묶인 식에 일치하는 텍스트를 찾아 태그를 지정합니다.


태그가 지정된 n번째 텍스트

\n

백슬래시(\) 다음에 숫자 n이 쓰이면, n번째 그룹(Match Group)을 나타냅니다. 이때 그룹은 { }를 사용하여 표기된 것입니다.찾기 또는 찾아 바꾸기 식에서 태그가 지정된 n번째 식과 일치하는 텍스트를 찾습니다. 여기서 n은 0-9까지 범위의 숫자입니다.

{.}{.}\1\0: noon{.}{.}\0\1: nono

패턴식 조합

|

앞뒤의 식을 찾습니다. 이 구문은 그룹 내에서 가장 자주 사용됩니다.

Th((at)|(is)) : That 또는 This(s|d)o : so 또는 do

영숫자

\a

알파벳이나 숫자를 찾습니다.

 

빈칸이나 탭 문자

\b

빈칸이나 탭 문자를 찾습니다.


영문자

\c

알파벳 문자를 찾습니다.


숫자

\d

숫자를 찾습니다.


16진수

\h

16진수에서 사용되는 문자를 찾습니다.


따옴표 붙은 문자열

\q

따옴표가 붙은 문자열을 찾습니다.


영문자열

\w

알파벳이나 한글 문자로 된 단어를 찾습니다.


숫자로 된 단어

\z

숫자로 된 단어를 찾습니다.


한글 문자

\k

한글 문자를 찾습니다.


//