Notice
Recent Posts
Recent Comments
Link
관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] 정규식 (Regex) 본문

iOS 응용 (swift)

[iOS - swift] 정규식 (Regex)

jake-kim 2021. 1. 5. 21:02

정규 표현식

  • 대표적인 표현식
표현식 의미
^x x문자열로 시작
x$ x문자로 종료
.x 임의의 한 문자 + x문자로 끝남
x+ x문자가 한번 이상 반복
(x) x는 한 그룹
(x)(y) 각 그룹 (그룹에 순서대로 번호 부여)
(?:x) x문자는 집합으로 관리되지 않음
x{n} x문자가 n번 반복
x{n,} x문자가 n번 이상 반복
x{n,m} x문자가 n번 이상 m번 이하로 반복
xyz? xy그리고 0개 또는 1개의 z포함
xyz* xy그리고 0개 이상의 z포함
xyz{2} xy그리고 2개의 z포함
x(yz)* x그리고 0개 이상의 yz포함
a(b|c)) a그리고 b 또는 c 포함
a[bc] a(b|c)와 동일
  • 표현식2
표현식 의미
[xy] x와 y중 하나 문자 선택
[^xy] x및 y를 제외한 문자
[x-z] x ~ z사이의 문자
\^ ^를 문자로 사용함
\b "boundary" 공백
\B "non word boundary" 공백이 아닌 문자
\d "digit" 숫자 하나와 매칭
\D 숫자가 아님
\s "space" 공백 문자
\S not space
\t tab
\v vertical tab
\w "word" 알파벳 or 숫자 or _ 중에 한 문자
\W 위 문자가 아닌 나머지
. 모든 문자 하나와 매칭
  • 표현식3 - flag
flag 의미
g "global" 문자열내에 모든 패턴들을 검색
i "ignore case" 대/소문자 식별 x
m "multi line" 다중 라인도 검색

예제

  • /person/g: 'person'이라는 단어에 매칭되는 것을 검색
  • 이메일: /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i
    /시작은 0~9 or a~z or A~Z / - or _ or . 문자 0개 또는 1개 존재 / 0~9 or a~z or A~Z 중 0개 이상 / @ 반드시 존재 / ... / 대소문자 구분 안함

* 더욱 구체적인 개념은 해당 포스팅 글 참고

Comments