******** 일단은 단순형 정규식이다. ********
1. "."
. 은 임의의 문자 하나를 나타낸다.
. 이 있는 곳에는 반드시 하나의 문자가 매치되어야 한다.
즉 a.b 는,
aib, axb ... 등과 매치된다. ab 는 매칭되지 않는다.
2. "*"
* 는 * 바로 앞에 있는 문자가 없거나, 하나 이상 반복하는 패턴을 말한다.
즉 ab*c 는,
ac, abc, abbc, abbbc...등과 매치된다.
3. "+"
+ 는 *과 비슷한 기능을 가진다.
그러나 * 가 바로앞에 있는 문자가 없거나, 하나 이상 반복하는 패턴임에 반해
+ 는 하나 이상 반복하는 패턴에만 해당한다.
즉 ab*c 는,
abc, abbc, abbbc .. 등과 매치된다.
4. "?"
? 는 ? 앞의 문자가 있거나 없거나 둘중의 하나인 패턴이다.
즉 ab?c 는,
abc, ac와 매치된다.
5. "^"
^ 는 ^ 뒤에 오는 문자열로 시작해야 하는 패턴이다.
즉 ^aa 는,
aa bb, aa cc 등과 매치된다.
6. "$"
$ 는 ^ 와는 반대로 앞에 오는 문자열로 끝나야 하는 패턴이다.
즉 aa$는
bb aa, cc aa 등과 매치된다.
******** 다음은 다중형 정규식이다 ********
1. "[]"
[] 안의 문자와 매칭되는 패턴을 찾는다.
단순 사용법은 다음과 같다.
[abc] 인 경우, a, b, c 라는 문자와 매칭이 되면 된다.
즉 a, b, c, ab, abc 등이 되겠다.
조금 응용하면 다음과 같은 검증이 가능하다.
[a-z] 모든 소문자를 검색,
[A-Z] 모든 대문자를 검색,
[0-9] 모든 숫자를 검색,
이를 활용하면,
^[a-zA-Z0-9] 대문자, 소문자, 숫자로만 시작하는 모든 문자열 검색
한가지 주의할 점.
[] 안에 ^ 기호가 오면 []안의 문자를 제외한 문자를 찾으라는 의미가 된다.
즉[^abc]de 는 a,b,c라는 문자가 들어가지 않는 .de와 동일한 의미가 된다.
dde, ede, fde... 등이 되겠다.
2. "{}"
{} 는 {} 안에 입력 된 숫자만큼 {} 앞의 문자열을 반복한 패턴을 말한다.
즉 ab{3}c 는,
abbbc 와 매칭된다.
덧붙여 {} 는 반복갯수의 범위를 지정가능하다.
{3,} 이면 3번 이상 반복
{3,5} 이면 3번 이상 , 5번 이하 반복을 의미한다.
3. "()"
() 는 ()안의 문자열을 하나의 문자로 인식하여 본다.
즉 aa(bb){2}cc 인 경우
aabbbbcc와 매칭이 된다고 인식하면 된다.
******** 이상하게 홀로 떨어져 있는 정규식. ********
1. "|"
| 는 보통의 경우 그러하듯 or 연산자를 나타낸다.
즉 aa|bb 의 경우,
aa, bb, aabb, ccbb, aacc 등과 매칭된다.
2. 앞에서도 살짝 언급 된 적이 있는 패턴문자 클래스
[a-zA-Z] 모든 영문자
[[:alpha:]] \p{Alpha}
[0-9] 모든 숫자
[[:digit:]] \p{Digit}
[a-zA-Z0-9] 영문자와 숫자
[[:alnum:]] \p{Alnum}
공백
[[:space:]] \p{Space}
3. 위에서 사용한 특수문자를 패턴에 넣으려면
\ 문자 사용
\를 패턴에 넣으려면 \\ 사용
'컴퓨터 공부 > 기타 ' 카테고리의 다른 글
[기타] cygwin 설치및 환경설정 [1] cygwin을 설치해보자~ (0) | 2013.01.02 |
---|---|
[기타] get방식의 길이제한 (0) | 2012.12.25 |
[기타] HTTP프로토콜이란? (0) | 2012.12.21 |
server.xml (0) | 2012.05.17 |
cygwin한글이 깨질경우에는?? (1) | 2012.05.16 |