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개 이상 / @ 반드시 존재 / ... / 대소문자 구분 안함
* 더욱 구체적인 개념은 해당 포스팅 글 참고