Regular Expressions
- 문자 집합 : [] - 대괄호 사이에 찾고자 하는 문자들의 집합을 표기한다
- 예)
- [0-9] : 0부터 9까지의 숫자 한 문자
- [Aa] : A 혹은 a에 대응하는 한 문자
- "-"(하이픈)은 문자 집합인 대괄호 안에서 만 문자의 범위를 지정하는 기호로 쓰인다.
- 예)
-
제외 문자 : ^ (캐럿) - ^기호 뒤의 문자를 제외한 문자 (집합기호 - [] - 안에서 쓰일때)
-
예)
-
ns[^0-9] : nsx - ns다음의 x가 숫자가 아닌 한 문자에 대응
-
-
-
메타 문자 : 정규표현식에서 특별한 의미를 가지는 문자
-
정규표현식에서 메타문자 및 기호문자를 찾고자하는 문자에 대응하려면 "\"(escape)를 붙혀 사용한다.
-
모든 문자 : .(마침표) - 모든 문자에 대응되는 한 문자
-
공백 문자 : \n, \r, \t, \f-form feed, \v-vertical tab
-
특별한 문자 형태
-
숫자와 숫자 아닌문자 : \d - [0-9], \D - [^0-9]
-
영숫자 문자와 영숫자 문자가 아닌 문자 : \w - [a-zA-Z0-9_], \W - [^a-zA-Z0-9_]
-
공백문자와 공백이 아닌문자 : \s - [\f\n\r\t\v], \S - [^\f\n\r\t\v]
-
16진수 8진수 : \x, \0
-
-
- 반복찾기
- + : 한 문자 이상 - + 기호 앞으 문자가 하나 이상 반복
- * : 문자가 없거나 하나 이상 반복
- ? : 문자가 없거나 하나와 대응하는 문자 예) https?// - s가 없거나 한번 있는 경우와 대응
- 반복회수 지정하기 : {} (중괄호) - 중괄호 앞의 문자에 대하여 반복회수 지정
- 반복회수 지정 : {반복회수} - 저정된 회수만큼 반복하는 경우 대응
- 예)
- #[0-9A-Fa-f]{6} - 16진수 RGB표기
- 예)
- 최소, 최대 반복회수 지정 : {최소, 최대} - 최소번 또는 최대번만 반복되는 경우 대응, 최소값에 0과 최대값의 생략 가능
- 예)
- \d{1,2}[-\/]\d{1,2}[-\/]\d{2,4} - -또는 / 구분의 날짜 표기
- 예)
- 반복회수 지정 : {반복회수} - 저정된 회수만큼 반복하는 경우 대응
- greedy와 lazy 수량자
- 탐욕적 수량자 : +, *, {n,}
- 게으른 수량자 : +?, *?, {n,}?
- 예) abcd <b>xxx</b> and <b>yyy</b> efgh
- greedy : <[Bb]>.*</[Bb]> --> <b>xxx</b> and <b>yyy</b>
- lazy : <[Bb]>.*?</[Bb]> --> <b>xxx</b> 와 <b>yyy</b>
- 단어 경계 지정
- 단어 사이의 공백 : \b - 공백문자(space)와 일치하지만 공백을 일치하는 문자로 지정하지는 않는다. (\B - \b와 반대) --> 단어 사이의 구분자로 쓰임
- 실제 공백 문자를 찾을 때는 [ ]또는 \s를 활용한다.
- 시작 문자 지정 : ^(캐럿) - 제외 문자와 달리 표현식의 처음에 사용되어 다음에 나오는 문자를 시작하는 문자로 지정할 수 있다.
- 마지막 문자 지정 : $ - 앞에 나온 문자가 마지막에 일치할때
- 다중행 모드 : (?m)
- 지정한 문자열을 줄단위로 분리하여 표현식을 검색한다.
- 표현식의 가장 앞에 써준다.
- 다중행 모드 지정시 ^와 $를 지정단 문자열의 줄단위로 검색하는 것이 가능하다.
- 예) 라인단위 주석(//) 문자로 부터 해당 라인의 끝까지
- (?m)^//.*$
- 단어 사이의 공백 : \b - 공백문자(space)와 일치하지만 공백을 일치하는 문자로 지정하지는 않는다. (\B - \b와 반대) --> 단어 사이의 구분자로 쓰임
- 하위 표현식 : () - 괄호
- 표현식 일부를 괄호로 묶어준다.
- 중첩 하위 표현식 : 괄호안에 괄호...
- or 연산자 : | - | 기호의 좌우 둘중 하나가 일치하는 경우
- 예) 아이피 형식의 문자열
- (\d{1,3}\.){3}\d{1,3}
- (((\d{1,2})|(1\d{2}))|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2}))|(2[0-4]\d)|(25[0-5]))
- 역참조 : \1 ~ \9
- 표현식 중 하위 표현식의 순서와 지정한 번호가 해당 하위 표현식과 일치한다.
- 0번을 지정하면 해당 표현식 전부와 일치한다.
- 예) html의 <H1~6>태그의 내용 찾기
- <Hh([1-6])>.*?</Hh\1>
- 전방탐색과 후방탐색 : 하위표현식으로 표현
- 전방탐색 : ?= - 지정한 전방 탐색 기호의 다음 표현식으로 부터 앞에 나오는 일치하는 문자를 찾는다.
- 후방탐색 : ?<= - 지저한 후방 탐색 기호의 다음 표현식으로 부터 뒤에 나오는 일치하는 문자를 찾는다.
- 예) html tag기회 내의 내용
- (?<=<[Tt][Ii][Tt][Ll][Ee]>).*?(?=</[Tt][Ii][Tt][Ll][Ee]>)
- 부정형 전/후방 탐색 : 전방 - ?!, 후방 - ?<!
- 예) $로 시작하지 않는 숫자
- \b(?!\$)\d+\b
- 예) $로 시작하지 않는 숫자
- 조건 달기 : ?
- ? 앞의 문자(표현식)가 없거나 한번 일치할때 해당하는 앞으 문자(표현식)과 일치한다.
- 전후방 탐색(?=, ?<=)의 뒤에 나오는 표현식과 일치할때...
- 역참조 조건 : (?(backreference)true), (?(backreference)true|false)
- backreference는 역참조 대상의 하위 표현식이며, \를 붙이지 않고 해당 하위 표현식 순서에 해당하는 번호를 지정한다.
- 예) IMG 태그나 이미지 태그를 싸고 있는 A태그
- (<[Aa]\s+[^>]+>\s*)?<[Ii][Mm][Gg]\s+[^>]+>(?(1)\s*</[Aa])>)
- 예)
- (\()?\d{3}(?(1)\)|-)\d{3}-\d{4}
- 예) IMG 태그나 이미지 태그를 싸고 있는 A태그
- backreference는 역참조 대상의 하위 표현식이며, \를 붙이지 않고 해당 하위 표현식 순서에 해당하는 번호를 지정한다.
- 전방 탐색 조건 : (?(?=condition)expressions)
- 예)
- \d{5}(?(?=-)-\d{4})
- 예)
* 유용한 정규 표현식 예
- IP : (((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))
- URL : https?://(\w*:\w*@)?[-\w.]+(:\d+)?(/([\w/_.]*(\?\S+)?)?)?
- Email : (\w+\.)*\w+@(\w+\.)+[A-Za-z]+
- HTML 주석 : <!-{2,}.*?-{2,}>
- 주민등록번호 : \d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])-[1-4]\d{6}
- 한글 : [가-힣]
- 유니코드 : \ucodenumber
'Programming > Java Script' 카테고리의 다른 글
[스크랩] 팝업 관련 함수 (0) | 2010.03.26 |
---|---|
[스크랩] 유용한 함수들 (0) | 2010.03.26 |
항상따라다니는 Div창 & 자동 창 크기 설정 스크립트 (0) | 2010.03.23 |
Window 객체 속성 (0) | 2010.03.23 |
윈도우 창 크기 알아오기 (0) | 2010.03.22 |
Asp.Net 에서 페이지 따라 댕기기 (0) | 2010.02.24 |
정규화 표현 2 (0) | 2010.02.19 |
HTML 페이지 주소 인코딩/디코딩 하는 방법 (0) | 2010.02.18 |
asp.net TextBox 컨트롤 javascript에서 ID 불러오기 (0) | 2010.02.18 |
웹 브라우저 정보 가져오기 < navigator > (0) | 2010.02.17 |