정규식

supway·2023년 2월 26일
0

정규식은 문자 리터럴, 메타 문자, 그룹화가 존재

  1. 문자 리터럴 (Literal Characters): 정확히 일치하는 문자를 찾음
    ex) 'abc'는 문자열 'abc'를 찾음

  2. 메타 문자 (Metacharacters): 문자열에서 특정한 문자 집합을 대표하는 문자입니다. 메타 문자는 다양한 의미를 가지며, 대표적으로 다음과 같다.

  • '.' (점): 모든 문자를 나타냅니다.

    ex)
    "a.b"는 "acb", "a#b", "a$b" 등을 포함 (단, "ab"는 포함 X)

  • '^' (시작): 문자열의 시작을 나타냅니다.

    ex)
    "^abc"는 "abcdef"를 포함 (단, "aabc"는 포함 X, 무조건 "abc" 로 시작해야함 )

  • '$' (끝): 문자열의 끝을 나타냅니다.

    ex)
    "abc$"는 "xabc", "yabc" 등을 포함 (단, "abcz"는 포함 X, 무조건 "abc"로 끝나야 함)
    만약에 "abc"만 포함해야 한다면 '^' 를 같이 사용해서 "^abc$" 로 표현

  • '*' (별표): 0번 이상 반복되는 문자를 나타냅니다.

    ex)
    "ab*c"는 "ac", "abc", "abbbc" 등을 포함

  • '+' (더하기): 1번 이상 반복되는 문자를 나타냅니다.

    ex)
    "ab+c"는 "abc", "abbbc" 등을 포함 (단, "ac"는 포함 X )

  • '?' (물음표): 0번 또는 1번 나타나는 문자를 나타냅니다.

    ex)
    "ab?c"는 "ac"와 "abc"를 포함 (b가 0번 또는 1번이 나와야함)

  • '[ ]' (대괄호): 대괄호 안에 포함된 문자 중 하나를 나타냅니다.

    ex)
    "a[bc]d"는 "abd"와 "acd"를 포함 (b나 c가 포함 되어야함)
    "abc[a-z]$" 는 앞이 "abc" 를 가지고 바로 뒤의 문자가 'a`~'z' 사이여야 함

  • '{ }' (중괄호): 앞에 나타난 문자의 반복 횟수를 나타냅니다. {n}은 n번, {n,m}은 n번에서 m번, {n,}은 n번 이상 반복되는 문자를 나타냅니다.

    ex)
    "ab{2}c"는 "abbcc"를 포함
    "ab{2,4}c"는 "abbcc", "abbbcc", "abbbbcc"를 포함

  • '|' (파이프): 대체할 문자열을 구분합니다.

    ex)
    "apple|banana"는 "apple"과 "banana"를 모두 포함

  • '\d' : 숫자
  • '\s' : 공백 문자 (공백, 탭, 줄바꿈 등)
  • '\S' : 공백이 아닌 문자
  • '\w' : [a-zA-Z0-9]와 동일
  • [^] : not []안의 문자를 제외
  1. 그룹화 (Grouping): 괄호로 묶어서 표현하는 패턴 괄호 안에는 다른 메타 문자나 문자 리터럴을 조합해 표현할 수 있습니다. 그룹화된 패턴은 한 번 이상 반복될 수 있습니다.

    ex)
    "(abc)+" : "abc", "abcabc", "abcabcabc" 등과 매치
    "(a|b)c" : "ac" 또는 "bc"와 매치

profile
개발잘하고싶은사람

0개의 댓글