정규표현식은 대부분 perl 프로그래밍 스타일
오늘날 정규식이 대중화될 수 있었던 데에는 perl에 내장된 정규식 기능의 역할이 컸다함.
5.6, 5.8, 5.10 등의 버전이 있는데 그걸 주로 이책에 다룬다함(이책은 oreilly 한권으로 끝내는 정규표현식)
정규표현식은 -> 정규식으로 줄여 부르기도함
PCRE 'perl 호환 정규식' c언어 라이브러리
http://www.pcre.org (오픈소스)
.NET
System.Text.RegularExpressions 패키지를 통해 완전한 기능의 Perl 스타일 정규식 스타일을 제공
1.0이랑 2.0 말고는 내용이 안바뀌었으므로 신경쓸필요 없음
예외는 비주얼스튜디오 통합 개발 환경(IDE)은 아직도 초기에 사용했던 구식 정규식 스타일을 고수하고 있는데, 이 정규식은 애초에 Perl 스타일과는 거리가 멀다(ctrl+f로 검색 및 바꾸기에서 정규식 쓸때 말하는거 같다)
java
java4는 java.util.regex 패키지 안에 정규식 기능이 내장된 초초의 ajava 버전. java4는 각종 타사의 java용 정규식 라이브러리들을 빠르게 추월했다함. 표준과 내장이라는 장점 외에도, perl스타일 정규식의 완벽한 기능을 제공하면서 c로 작성된 애플리케이션에 비해 성능이 가히 환상적이라는 장점이 있다.
python
자체의 re 모듈을 통해 정규식을 지원한다. 2.4와 2.5를 책에서 다름. 정규식 기능은 수년간 변함이 없었다함
javascript, ruby 등도 있는데 내가 잘 모르니깐 걍 때려침
정규표현식을 이용한 검색치환
검색치환은 정규식의 가장 보편적인 용도로 사용된다. 검색치환 ㅎ삼수는 대상 문자열, 정규식, 치환 문자열을 받아서, 정규식의 모든 일치부를 치환 텍스트로 치환한 대상 문자열을 출력한다.
치환 텍스트는 비록 정규식이 아니지만 특정한 특수 문법을 사용하여 동적 치환 텍스트를 작성할 수 있다. 어느 정규식 스타일이든, 정규식과 일치된 텍스트나 캡쳐 그룹을 치환 텍스트 안에 재삽입할 수 있다.
스타일이 다양하지만 pcre제외하고는 이 책에서는 치환 텍스트 스타일이 동일하다
pcre 라이브러리에는 치환 기능이 전혀 들어가있지 않다(ㅇ이걸 이용한 프로그래밍 언어는 자체적인 검색치환 기능 기능 제공이 필요?)
정규표현식 작성 툴
정규식을 사용해 프로그래밍 해본 경험이 없다면 소스코드 내에서보다는 먼저 툴 안에서 정규식을 실습해 보는 것이 좋다.
툴
RegexBuddy(작성,테스트,실행을 제공하는 툴 중에서 가장 많은 기능 제공)
상단 왼쪽의 편집 박스에 넣으면 테스트 가능(자동 구문채색을 적용하므로, 에러나 짝이 맞지 않는 괄호 등이 한 눈에 파악된다.)
자주 사용하는 버튼
list all : 모든 일치부를 목록으로 표시한다
replace : 상단의 replace 버튼을 누르면 패널 아래 부분에 새 영역이 추가되는데, 여기에 치환 텍스트를 입력할 수 있다. test 박스에 생기는 replace 버튼을 누르면 대상 텍스트의 치환 결과를 볼 수 있다.
split(상단이 아니라 test 패널에 있는 버튼) : 정규식을 구분자로 간주하여, 대상 텍스트 내에서 정규식과 일치하는 부분의 위치를 기준으로 대상을 토큰들로 분리한다
use탭에서는 사용언어를 선택하고 fuction바에서 함수 선택하면 적용되는걸 쉽게 볼 수있다함
평가판 : www.regexbuddy.com/regexbuddycookbook.exe
툴
RegexPal
최신버전의 웹 브라우저만 있으면 이 툴을 사용 가능
순수 javascript로만 작성됨 그래서 웹브라우저에서 실행됨. javascript정규식 스타일만 지원됨
사이트 : www.regexpal.com
기타 온라인용 툴
http://regex.larsolavtorvik.com
nregex
http://nregex.com
myregexp.com
www.myregexxp.com
reanimator
http://osteele.com/tools/reanimator
expresso
www.ultrapico.com/expresso.html
the regulator
http://sourceforge.net/projects/regulator
오픈소스라고 하네
이게 젤 나은듯
grep
이 명령은 유닉스에서 주로 쓰인다함
man grep으로 설명을 보자
powergrep
윈도우용
www.powergrep.com/powergrepcookbook.exe
windows grep
www.wingrep.com
regexrenamer
http://regexrenamer.sourceforge.net
파일의 내용을 검색하는게 아니라. 파일들의 이름을 검색하고 치환한다.
'컴퓨터 과학 & 영상처리 관련 > Regular Expression' 카테고리의 다른 글
정규식 사이트 (0) | 2014.02.12 |
---|---|
비주얼 스튜디오를 사용 프로젝트 내 모든 포인터 찾기 (0) | 2013.02.13 |