정규표현식(Regular Expression)

young·2021년 12월 23일
0

정규표현식이란?

  • 복잡한 문자열을 처리할 때 사용하는 기법(모든 언어 공통)
  • 텍스트에서 우리가 원하는 특정한 패턴을 찾을 때 사용
  • 예를 들어 전화번호 형태의 패턴을 찾거나 웹 사이트 형태의 패턴을 찾거나 찾은 패턴을 다른 문자열로 변환할 수 있음
  • 사용자가 입력한 데이터가 이메일이나 패스워드와 같은 특정한 패턴에 부합하는지 유효성 검사를 할 때 사용할 수 있음

정규표현식을 사용하는 이유?
: 복잡한 문자열을 해결해야할 때 정규표현식을 사용하게 되면 짧고 간결하게 문제를 해결할 수 있음

정규표현식 수식

  • 문자 클래스 [ ]

    [abc]

    • [] 사이의 문자들과 매치
    • "a"는 정규식과 일치하는 문자인 "a"가 있으므로 매치
    • "before" 정규식과 일치하는 문자인 "b"가 있으므로 매치
    • "dude"는 정규식과 일치하는 문자인 a, b, c 중 어느 하나도 포함하고 있지 않으므로 매치되지 않음
    • 하이픈을 사용하여 From-To로 표현 가능
      ex) [a-c] = [abc], [0-5] = [012345]
  • Dot (.)

    a.b

    • 줄바꿈(₩n)을 제외한 모든 문자와 매치
    • "aab"는 가운데 문자 "a"가 모든 문자를 의미하는 '.'과 일치하므로 정규식과 매치
    • "a0b"는 가운데 문자 "0"가 모든 문자를 의미하는 '.'과 일치하므로 정규식과 매치
    • "abc"는 "a"문자와 "b"문자 사이에 어떤 문자라도 하나는 있어야 하는 이 정규식과 일치하지 않으므로 매치되지 않음
  • 반복 (*)

    ca*t

    • "ct"는 "a"가 0번 반복되어 매치
    • "cat"는 "a"가 0번 이상 반복되어 매치(1번 반복)
    • "caaat"는 "a"가 0번 이상 반복되어 매치(3번 반복)
  • 반복 (+)

    ca+t

    • "ct"는 "a"가 0번 반복되어 매치되지 않음
    • "cat"는 "a"가 1번 이상 반복되어 매치(1번 반복)
    • "caaat"는 "a"가 1번 이상 반복되어 매치(3번 반복)
  • 반복 ({m, n}, ?) ? == {0,1}와 같은 표현

    ca{2}t

    • "cat"는 "a"가 1번만 반복되어 매치되지 않음
    • "caat"는 "a"가 2번 반복되어 매치

    ab?c

    • "abc"는 "b"가 1번 사용되어 매치
    • "ac"는 "b"가 0번 사용되어 매치
  • 파이썬에서 정규표현식을 지원하는 re 모듈
    import re p = re.compile('ab*')
    • re.compile을 사용하여 정규표현식('ab*')을 컴파일 한다. re.compile의 결과로 돌려주는 객체 p(컴파일된 패턴 객체)를 사용
profile
🐿 개발중...

0개의 댓글