728x90
반응형
본 포스팅에서는 문자열에 사용되는 형식 언어인 정규표현식에 대해 정리하고자 합니다.
정규 표현식 (Regex)
[Anchors]
^x
|
문자열의 시작 혹은 x 문자로 시작됨을 의미
|
\A
|
문자열의 시작 |
x$
|
문자열의 끝 혹은 x 문자로 끝남을 의미
|
\Z
|
문자열의 끝 |
\b
|
문자와 공백사이의 문자를 의미
|
\B
|
문자와 공백사이가 아닌 문자를 의미
|
\<
|
Word 시작
|
\>
|
Word 종료
|
[Character Classes]
\c
|
Control character
|
\s
|
공백 문자를 의미
|
\S
|
공백 문자가 아닌 것을 의미
|
\d
|
숫자를 의미
|
\D
|
숫자가 아닌것을 의미
|
\w
|
알파벳 + 숫자 + _ 중 하나임을 의미
|
\W
|
알파벳 + 숫자 + _ 가 이닌 문자를 의미
|
\x
|
16진수 숫자를 의미
|
\O
|
8진수 숫자를 의미
|
[Posix]
[:upper:]
|
대문자
|
[:lower:]
|
소문자
|
[:alpha:]
|
모든 알파벳
|
[:alnum:]
|
숫자와 알파벳
|
[:digit:]
|
숫자
|
[:xdigit:]
|
16진수
|
[:punct:]
|
Punctuation
|
[:blank:]
|
스페이스바 혹은 탭
|
[:space:]
|
공백 문자
|
[:cntrl:]
|
제어 문자
|
[:graph:]
|
숫자와 알파벳과 Punctuation |
[:print:]
|
숫자와 알파벳과 Punctuation과 공백 문자
|
[:word:]
|
숫자와 알파벳과 _
|
※ Punctuation : period (.), comma (,), semicolon (;), colon (:), exclamation point (!), question mark (?), parentheses (( and )), brackets ([ and ]), brace ({ and })
[Assertions]
X(?=Y)
|
Lookahead assertion, Y 패턴 앞에 X인 경우
|
X(?!Y)
|
Negative lookahead, Y 패턴 앞에 X가 아닌 경우
|
(?<=Y)X
|
Lookbehind assertion, Y 패턴 뒤에 X인 경우
|
(?!=Y)X or (?<!Y)X
|
Negative lookbehind, Y 패턴 뒤에 X가 아닌 경우
|
[Quantifiers]
*
|
0번 이상 반복
|
+
|
1번 이상 반복
|
?
|
0번 혹은 1번 반복
|
{N}
|
정확히 N번 반복
|
{N,}
|
N번 이상 반복 |
{N1,N2}
|
N1번~N2번 (N1과 N2 포함) 반복
|
[Special Characters]
\n
|
새 라인, 다음 행으로 줄을 바꿈 |
\r
|
캐리지 리턴, 현재 행 맨 앞으로 이동
|
\t
|
탭
|
\v
|
버티컬 탭
|
\f
|
폼피드, 프린트 출력시 현재 페이지 마침
|
[Gropus and Ranges]
.
|
새 라인 (\n)을 제외한 모든 문자
|
(a|b)
|
a 혹은 b
|
(...)
|
그룹
|
(?:...)
|
Passive (non-capturing) group
|
[abc]
|
(a 혹은 b 혹은 c) 범위
|
[^abc]
|
(a 혹은 b 혹은 c) 해당 범위가 아닌 경우
|
[a-q]
|
a 부터 q 까지 소문자
|
[A-Q]
|
A 부터 Q까지 대문자
|
[0-7]
|
0부터 7까지 숫자
|
해당 정규식을 활용하여 다양하게 문자열을 처리할 수 있습니다.
참고 : https://cheatography.com/davechild/cheat-sheets/regular-expressions/
https://hamait.tistory.com/342
https://elvanov.com/2388
728x90
반응형
댓글