블로그 이미지
그기 아이라 카드만 앱팀장

카테고리

.COM SENSE (139)
TEXT (30)
VIEW (23)
MOVIE (9)
LIFE (9)
SPORTS (5)
ISSUE (8)
SHORT (10)
WORDS (9)
DOCS (8)
KNOWLS (27)
Total
Today
Yesterday

정규식

KNOWLS / 2007. 12. 28. 12:54

번호 정규식 설명
1

c[a-z]*

c로 시작하는 영단어
2

c[a-z]

c로 시작하는 두 자리 영단어
3

c[a-zA-Z]

c로 시작하는 두 자리 영단어

(a~z 또는 A~Z, 즉 대소문자 구분안함)

4

c[a-zA-Z0-9]
c\w

c로 시작하고 숫자와 영어로 조합된 두 글자
5

.*

모든 문자열
6

c.

c로 시작하는 두 자리
7

c.*

c로 시작하는 모든 문자열(기호포함)
8

c\.

c.와 일치하는 문자열 '.'은 정규식표현에 사용되는 문자이므로 escape문자인 '\'를 사용해야한다.

9

c\d
c[0-9]

c와 숫자로 구성된 두 자리 문자열
10

c.*t

c로 시작하고 t로 끝나는 모든 문자열
11

[b|c].*
[bc].*
[b-c].*

b 또는 c로 시작하는 문자열
12

[^b|c].*
[^bc].*
[^b-c].*

b 또는 c로 시작하지 않는 문자열


13

.*a.*

a를 포함하는 모든 문자열
--> *: 0 또는 그 이상의 문자
.*a.+
a를 포함하는 모든 문자열.
+: 1 또는 그 이상의 문자
+는 *과는 달리 반드시 하나 이상의 문자가 있어야 하므로 a로 끝나는 단어는 포함되지 않았다.

14

[b|c].{2}

b 또는 c로 시작하는 세 자리 문자열. (b 또는 c 다음에 두 자리이므로 모두 세 자리)

15

.*&Gotopage=1$

'&Gotopage=1'로 끝나는 문자열.

16

.*(0:36:41|65.54.188.79).*

'0:36:41' 또는 '65.54.188.79' 를 포함하는 문자열


  • 정규식은 유효성을 검사하는데 자주 사용합니다. 아래는 IP의 유효성 검사에 사용하는 정규식입니다.
(([2][5][0-5]|[2][0-4][0-9]|[0-1][0-9][0-9]|[0-9][0-9]|[0-9])\\.){3}
([2][5][0-5]|[2][0-4][0-9]|[0-1][0-9][0-9]|[0-9][0-9]|[0-9]) 


  • 위의 정규식이 어떻게 IP 유효성을 검사는데 사용되는지 확인해 볼까요?
    • 위 정규식은 다시 이렇게 쓸 수 있습니다.
1.  A = ([2][5][0-5]|[2][0-4][0-9]|[0-1][0-9][0-9]|[0-9][0-9]|[0-9])
2.  (A\\.){3}A
  • 우선 IP가 어떤 규칙을 갖고 있는지 생각해 보죠.
    • IP는 "???.???.???.???" 이런 형태로 되어 있죠.
    • "."을 기준으로 4구역으로 나눌 수 있습니다.
    • 각구역은 0~255까지의 숫자만 입력할 수 있습니다.
    • 각 자리가 어떤 의미가 있는지는 네트워크관련 서적을 참고해 보시구요:)
  • 좀 간단해 보이는 2번 부터 시작하죠
    • (A\\.){3}A
    • "A."문자열이 3자리 반복되고 "A"문자열로 끝나야 한다는 의미 입니다.
    • A.A.A.A 와 같은 의미죠.
    • 표의 8번, 14번을 참고하면 금방 이해 하실 수 있습니다.
  • 1번은 무지하게 길지만 별거 아닙니다.
    • 파이프구분자가"|" 있습니다. 우선 파이프구분자는 "또는" 이라는 의미죠.
    • 파이프로 문자들을 나누어 보면
      • [2][5][0-5]
      • [2][0-4][0-9]
      • [0-1][0-9][0-9]
      • [0-9][0-9]
      • [0-9]
    • 대괄호"["는 문자열 1자리를 말합니다. 그러니까
      • [2][5][0-5]: 3자리 문자열
      • [2][0-4][0-9]: 3자리 문자열
      • [0-1][0-9][0-9]: 3자리 문자열
      • [0-9][0-9]: 2자리 문자열
      • [0-9]: 1자리 문자열
    • 괄호 안의 숫자는 범위를 나타내죠.
      • [2][5][0-5]: 250-255까지의 숫자로만 구성된 문자열
      • [2][0-4][0-9]: 200-249까지의 숫자로만 구성된 문자열
      • [0-1][0-9][0-9]: 000-199까지의 숫자로만 구성된 문자열
      • [0-9][0-9]: 00-99까지의 숫자로만 구성된 문자열
      • [0-9]: 0-9까지의 숫자로만 구성된 문자열
  • 이제 2개를 합쳐보면 되겠죠.
    • "(250-255 또는 200-249 또는 000-199 또는 00-99 또는 0-9)."이 3번 반복
    • "(250-255 또는 200-249 또는 000-199 또는 00-99 또는 0-9)"으로 끝나야 함.
Posted by 앱팀장
, |

최근에 달린 댓글

글 보관함