5 분 소요

정규표현식


  • 문자를 그대로 기술하지 않으면서 문자들의 순열이나 패턴을 기술
  • 파일 검색시 사용되는 와일드카드 문자(*)와 정규표현식에서의 문자는 다른 의미
  • 전화번호를 골라내려면 ? 전화번호 패턴
  • IP주소만 골라내려면 ? IP 주소 패턴
  • 패턴을 추출하거나 특정한 형식을 골라내기 위해서 정규표현식을 사용
  • PCRE (Perl Compatible Regular Expression, 펄 호환 정규표현)
  • 각 언어 또는 스크립트에 따라서 약간씩 다름
    정규표현식 기본 문법
  • 핸드폰 번호 정규표현식
    • /^\d(3)-\d{3,4}-\d{4}
  • 앵커 문자 : 텍스트 한 라인에 관련된 패턴의 위치를 기술
    • ^ (캐럿) : ‘^abc’ / 문자열의 가장 첫 문자열이 ‘abc’인 패턴
  • $ : ‘abc$’ / 문자열의 마지막 문자열이 ‘abc’로 끝나는 패턴
  • 문자 집합 : 어떤 위치에서 하나 이상의 문자들과 매치
    • : ‘[a-zA-Z0-9]’ / 영문 대소문자 및 숫자를 의미 -> 범위 지정
    • [ ^ ] : [^0-9] / 숫자 아닌 아무 문자 패턴
  • 특수 문자 :
    • . : ‘a..d’ / a와 d 사이의 아무 2개 문자가 오는 패턴
      • : ‘a*’ / a문자의 0번 이상 반복
  • 반복 범위 : 이전의 문자 집합이 몇 번 반복되는지 기술
  • {n, m} : A{4, 8}B / A가 4~8 번 반복되며 이후에 B가 오는 패턴
    # 자기자신이 아닌 아이피 모두 출력
    $ access.log | grep -v "^127\.0\.0\.1" 
    

댓글남기기