정규식을 잘 활용하면 다량의 텍스트를 처리하는 많은 프로그래밍 분야에서
조건에 맞는 데이타 검색, 추출, 대체, 삭제등 여러가지 일을 효율적으로 처리할 수 있다
UNIX의 셀프로그래밍이나 PERL, PYTHON 또는 UltraEdit등 정규식을 지원하는
각종 프로그래밍에서 정규식으로 처리하지 않으면 손이 많이 가는 번잡스러운 일들을
깔끔하게 처리할 수가 있다
정규식을 제대로 공부하시려는 분들은 그렇게 쉽지 않은 내용이기도 하고 책의
부피도 만만치않긴 하지만 O'REILLY사의 Mastering Regular Expressions을
읽어보시길 권한다
그렇지 않더라도 많이 활용할 수 있는 다음의 예들을 한번 익혀두면 여러모로
유익할것이다
수식 (Expression) : 숫자 또는 숫자를 나타내는 기호와 연산자로 구성(표현 express)
예 : a+b+c, 3a+2
정규식(Regular Expression) : 문자열 Pattern을 문자(literal)와 meta문자(metachracters)
로 구성(표현)
정규란 말은 아마 정해진 규칙(패턴)을 나타내는 단어인듯싶다 예 : abc, a[bc]c, .*
복잡한 무늬도 있고 단순한 무늬도 있듯이 문장내에서 나타나는 특정 문자열이 단순한
정규식으로 표현될수도 있고 매우 복잡해서 거의 암호수준으로 표현될수도 있다
[ Metacharacters ]
-- Single Character Match
-- 반복(혹은 횟수지정)
-- Position Match
-- 기타
-- 특정기능문자의 match
\t : tab
\n : newline
\r : carriage-return
\s : 임의의 whitespace(space, tab, newline, formfeed등)
\S : whitespace 제외한 임의의 한문자
\w : [a-zA-Z0-9_]
\W : not \w
\d : [0-9] 즉 숫자
\D : 숫자가 아닌 임의의 한문자
[ VBA 에서의 사용 ]
-- Early Binding : VBA 창에서 도구->참조->Microsoft VBScript Regular Expression 5.5
-- Late Binding : 프로그램안에서 set
Dim RegEx As Object
Set RegEx = CreateObject("vbscript.regexp")
-- Methods
-- Method Properties
조건에 맞는 데이타 검색, 추출, 대체, 삭제등 여러가지 일을 효율적으로 처리할 수 있다
UNIX의 셀프로그래밍이나 PERL, PYTHON 또는 UltraEdit등 정규식을 지원하는
각종 프로그래밍에서 정규식으로 처리하지 않으면 손이 많이 가는 번잡스러운 일들을
깔끔하게 처리할 수가 있다
정규식을 제대로 공부하시려는 분들은 그렇게 쉽지 않은 내용이기도 하고 책의
부피도 만만치않긴 하지만 O'REILLY사의 Mastering Regular Expressions을
읽어보시길 권한다
그렇지 않더라도 많이 활용할 수 있는 다음의 예들을 한번 익혀두면 여러모로
유익할것이다
수식 (Expression) : 숫자 또는 숫자를 나타내는 기호와 연산자로 구성(표현 express)
예 : a+b+c, 3a+2
정규식(Regular Expression) : 문자열 Pattern을 문자(literal)와 meta문자(metachracters)
로 구성(표현)
정규란 말은 아마 정해진 규칙(패턴)을 나타내는 단어인듯싶다 예 : abc, a[bc]c, .*
복잡한 무늬도 있고 단순한 무늬도 있듯이 문장내에서 나타나는 특정 문자열이 단순한
정규식으로 표현될수도 있고 매우 복잡해서 거의 암호수준으로 표현될수도 있다
[ Metacharacters ]
-- Single Character Match
. | 임의의 single character |
[...] | 각괄호내에 열거된 문자들중 하나의 character |
[^...] | 각괄호안에 열거된 문자들은 제외한 하나의 character(여기서 ^은 not) |
\char | 역슬래쉬(\)뒤의 문자 escape시킴(문자의 특별한의미 제거) |
-- 반복(혹은 횟수지정)
? | 1 or 0 (예 : foo? : fo, foo 매치) |
* | 0 이상 |
+ | 1 이상 |
{min, max} | 최소 min(숫자)만큼 match, 최대 max(숫자)까지 match |
-- Position Match
^ | line의 시작위치 match |
$ | line의 끝위치 match |
\< | 단어의 시작위치 |
\> | 단어의 끝위치 |
-- 기타
| | 선택(or) match (예 : foo|bar : foo 또는 bar match) |
(...) | 패턴을 match && save the match(for backreferences) |
\1, \2, ... | 위의 괄호로 save되어있는 text, 괄호로 저장한내용이 복수일때 번호순 |
-- 특정기능문자의 match
\t : tab
\n : newline
\r : carriage-return
\s : 임의의 whitespace(space, tab, newline, formfeed등)
\S : whitespace 제외한 임의의 한문자
\w : [a-zA-Z0-9_]
\W : not \w
\d : [0-9] 즉 숫자
\D : 숫자가 아닌 임의의 한문자
[ VBA 에서의 사용 ]
-- Early Binding : VBA 창에서 도구->참조->Microsoft VBScript Regular Expression 5.5
-- Late Binding : 프로그램안에서 set
Dim RegEx As Object
Set RegEx = CreateObject("vbscript.regexp")
-- Methods
Execute | 패턴매치 실행 |
Replace | 패턴을 찾아서 새로운값으로 대치 |
Test | 패턴을 찾는지 확인 (결과값 True 또는 False) |
-- Method Properties
Pattern | 정규식 |
Global | True or False(default) True일경우 전체탐색 False 첫매치까지만 |
IgnoreCase | True or False(default) True : 대소문자구분안함, False : 대소문자구분 |
MultiLine | True or False(default) True : 복수라인탐색, False : 현재라인만 탐색 |
'컴퓨터 > 엑셀' 카테고리의 다른 글
엑셀 누적 세로막대형 차트(Stacked Column Chart) 이용하여 체스 판(Chess Board) 그리기 1) 막대차트 개요설명 (0) | 2012.04.23 |
---|---|
엑셀로 체스기보보기(Excel Chess Game Viewer) (0) | 2012.04.18 |
다음 웹 영한사전 단어장 CHM(윈도우 도움말) 파일로 만들기(엑셀 VBA) (2) | 2012.02.23 |
엑셀 날짜더하기 및 시간더하기 (6) | 2012.02.11 |
엑셀의 셀값을 읽어 워드 테이블에 쓰기(Excel Cell Data를 MS Word Table의 셀로 옮기기) (0) | 2012.02.01 |