정규식(혹은 정규표현식)에 대해서 자료를 찾다가 괜찮은 문서들이 있길래 정리해봅니다.
1. IBM DeveloperWorks의 Special Issue중에서 초보 개발자 코드 트레이닝,Part 5 : 정규 표현식

2. www.wonchu.net의 자바스크립트 정규식 문서(아래 두개중 어떤 링크를 이용해도 됨.)
http://www.wonchu.net/board.do?method=bview&boardId=003&boardSeq=36 (검색엔진에서 찾은 링크)
http://www.wonchu.net/issue/00336 (게시판에 표시된 링크)

3. [똥싼너구리의 정리노트]라는 스프링노트에 올라온 문서
정규표현식 카테고리

4. [카알의 적당한 인생 이야기]에 올라온 정규표현식 문서
정규 표현식(Regular Expressions)


아래는 [카알의 적당한 인생 이야기]의 내용을 정리한 것입니다.
(1) ^ (caret) : 라인의 처음이나 문자열의 처음을 표시
    
$ (dollar) : 라인의 끝이나 문자열의 끝을 표시
    
. (period) : 임의의 한 문자를 표시
예)
^aaa (문자열의 처음에 aaa를 포함하면 참, 그렇지 않으면 거짓)
aaa$ (문자열의 끝에 aaa를 포함하면 참, 그렇지 않으면 거짓)
^a.c (문자열의 처음에 abc, adc, aZc 등은 참, aa 는 거짓)
a..b$ (문자열의 끝에 aaab, abbb, azzb 등을 포함하면 참)


(2) [] (bracket) : 문자의 집합이나 범위를 나타냄, 두 문자 사이의 "-"는 범위를 나타낸다.
[]내에서 "^"이 선행되면 not을 나타낸다.
이외에도 "문자클래스"를 포함하는 [:문자클래스:]의 형태가 있다. "문자클래스"에는 alpha, blank, cntrl, digit, graph, lower, print, space, uppper, xdigit가 있다.
이외에 [:<:]와 [:>:]는 어떤 단어(숫자, 알파벳, '_'로 구성됨)의 시작과 끝을 나타낸다.
예)
[abc] (a, b, c 중 어떤 문자, "[a-c]."과 동일)
[Yy] (Y 또는 y)
[A-Za-z0-9] (모든 알파벳과 숫자)
[-A-Z]. ("-"(hyphen)과 모든 대문자)
[^a-z] (소문자 이외의 문자)
[^0-9] (숫자 이외의 문자)
[:alpha:] ([A-Za-z]와 동일)
[[:digit:]] ([0-9]와 동일)

(3) {} (brace) : {} 내의 숫자는 직전의 선행문자가 나타나는 횟수 또는 범위를 나타냄
예)
a{3} ('a'의 3번 반복인 aaa만 해당됨)
a{3,} ('a'가 3번 이상 반복인 aaa, aaaa, aaaa, ... 등을 나타냄)
a{3,5} (aaa, aaaa, aaaaa 만 해당됨)
ab{2,3} (abb와 abbb 만 해당됨)
[0-9]{2} (두 자리 숫자)
doc[7-9]{2} (doc77, doc87, doc97 등이 해당)
[^Zz]{5} (Z와 z를 포함하지 않는 5개의 문자열, abcde, ttttt 등이 해당)
.{3,4}er ('er'앞에 세 개 또는 네 개의 문자를 포함하는 문자열이므로 Peter, mother 등이 해당)

(4) * (asterisk) : "*" 직전의 선행문자가 0번 또는 여러번 나타나는 문자열
예)
ab*c ('b'를 0번 또는 여러번 포함하므로 ac, ackdddd, abc, abbc, abbbbbbbc 등)
* (선행문자가 없는 경우이므로 임의의 문자열 및 공백 문자열도 해당됨)
.* (선행문자가 "."이므로 하나 이상의 문자를 포함하는 문자열, 공백 문자열은 안됨)
ab* ('b'를 0번 또는 여러번 포함하므로 a, accc, abb, abbbbbbb 등)
a* ('a'를 0번 또는 여러번 포함하므로 k, kdd, sdfrrt, a, aaaa, abb, 공백문자열 등) doc[7-9]* (doc7, doc777, doc778989, doc 등이 해당)
[A-Z].* (대문자로만 이루어진 문자열)
like.* (직전의 선행문자가 '.'이므로 like에 0 또는 하나 이상의 문자가 추가된 문자열이됨, like, likely, liker, likelihood 등)

(5) + (asterisk) : "+" 직전의 선행문자가 1번 이상 나타나는 문자열
예)
ab+c ('b'를 1번 또는 여러번 포함하므로 abc, abckdddd, abbc, abbbbbbbc 등, ac는 안됨)
ab+ ('b'를 1번 또는 여러번 포함하므로 ab, abccc, abb, abbbbbbb 등)
like.+ (직전의 선행문자가 '.'이므로 like에 하나 이상의 문자가 추가된 문자열이 됨, likely, liker, likelihood 등, 그러나 like는 해당안됨)
[A-Z]+ (대문자로만 이루어진 문자열)

(6) ? (asterisk) : "?" 직전의 선행문자가 0번 또는 1번 나타나는 문자열
예)
ab?c ('b'를 0번 또는 1번 포함하므로 abc, abcd 만 해당됨)

(7) () (parenthesis) : ()는 정규식내에서 패턴을 그룹화 할 때 사용

(8) | (bar) : or를 나타냄
예)
a|b|c (a, b, c 중 하나, 즉 [a-c]와 동일함)
yes|Yes (yes나 Yes 중 하나, [yY]es와 동일함)
korea|japan|chinese (korea, japan, chinese 중 하나)

정규식에서는 위에서 언급한 특수 문자를 제외한 나머지 문자들은 일반 문자로 취급함




YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


 공개 웹 브라우저인 Firefox는 다양한 부가기능을 이용해서 사용자가 필요한 기능을 추가하는 것이 장점이죠. 이번에 소개할 부가기능은 NoScript라는 부가기능입니다. 이 부가기능은 웹 브라우저로 웹 서핑을 할때 자바스크립트의 실행을 제한할 수 있는 기능입니다. 이 기능을 이용하면 자바스크립트를 이용한 팝업이나 플래쉬(요즘엔 OBJECT를 삽입할때 자바스크립트를 이용하죠.[각주:1]) 등의 화면표시나 실행을 제한할 수 있습니다.
아래는 addon.mozilla.org의 NoScript 다운로드 페이지입니다.
사용자 삽입 이미지

최근에 발표된 Firefox3 버전을 지원할 뿐만 아니라 Seamonkey까지도 지원하는 유용한 프로그램입니다. 무차별로 팝업을 띄우는게 짜증나거나, 무분별한 자바스크립트 남발로 웹 브라우저가 느려진다면 한번쯤 이용을 고려해볼만한 부가기능입니다.
  1. MS와 이올라스 간의 소송으로 인해서 이렇게 되었죠. 자세한건 다음 링크를 클릭하시면 됩니다. 이올라스 소송 검색 클릭!! [본문으로]
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


 이번엔 IBM DeveloperWorks[각주:1]의 웹 개발 관련 자료 중에서 [Ajax와 XML: 라이트박스(lightbox)용 Ajax] (Ajax 기술을 사용하여 라이트박스, 팝업, 윈도우, 페이더(fader) 만들기)라는 글을 소개합니다.

 이  문서는 자바스크립트 라이브러리를 이용해서 동적인 웹 프로그램을 만드는 법을 알려줍니다. 이미지를 같은 화면 내에서 크게 보여주는 법이나 툴팁을 보여주는 등의 현재 여러 서비스에서 쓰고 있는 기능들을 구현하는 법을 실제 예제와 소스 코드로 설명하고 있어서 당장 뭔가를 만들어 내야하는 개발자에게 유용할 거라고 생각합니다.

원문 : Ajax와 XML : 라이트박스(lightbox)용 Ajax

모든 것이 놀랍고 매력적인 요즘, 사용자들의 관심을 끌기란 어려운 일입니다. Ajax 툴과 Lightbox, 팝업, 윈도우, 페이딩(fading) 메시지 같은 새로운 기술을 사용하여 사용자의 관심을 끌어봅시다.


아래 이미지는 본문의 일부입니다.
사용자 삽입 이미지
위의 이미지 처럼 한눈에 들어오는 예제로 설명하고 있습니다. 보기 좋죠?
  1. IBM DeveloperWorks란 개발자들을 위한 다양한 정보를 제공하는 개발자 커뮤니티입니다.
    www.ibm.com/developerworks/kr [본문으로]
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST