반응형
정규식을 잘 사용하면 SQL과 각 종 프로그램의 연산속도를 감소시키며 프로그램을 단순화 시킬 수 있습니다.
시간이 걸리더라도 한번씩 사용해보면 좋습니다.
. | 하나의 문자를 의미합니다. ".*"하면 한개이상의 문자 즉 모든 문자를 의미합니다. |
$ | 끝을 의미한다. AAA$ 하면 AAA로 끝나는 것을 의미한다. |
\ | 특수 문자를 문자로 인식할때 사용합니다. |
¦ | 여러 식 중에서 하나를 선택합니다. SQL의 OR조건과 같습니다. "abc¦adc"는 abc와 adc 문자열을 모두 포함한다. |
^ | 문자 클래스 안의 문자를 제외한 나머지를 선택한다. 예를 들면 [^abc]d는 ad, bd, cd는 포함하지 않습니다. [^a-z]는 알파벳 소문자로 시작하지 않는 모든 문자를 의미한다. |
[] | "["과 "]" 사이의 문자 중 하나를 선택한다. "¦"를 여러 개 쓴 것과 같은 의미이다. 예를 들면 [abc]d는 ad, bd, cd를 뜻한다. 또한, "-" 기호와 함께 쓰면 범위를 지정할 수 있다. "[a-z]"는 a부터 z까지 중 하나, "[1-9]"는 1부터 9까지 중의 하나를 의미한다. |
() | 여러 식을 하나로 묶을 수 있다. "abc¦adc"와 "a(b¦d)c"는 같은 의미를 가진다. |
* | 0개 이상의 문자를 포함한다. "a*b"는 "b", "ab", "aab", "aaab"를 포함한다. |
+ | "a+b"는 "ab", "aab", "aaab"를 포함하지만 "b"는 포함하지 않는다. [+ 앞 내용 기준] |
? | "a?b"는 "b", "ab"를 포함한다. [? 다음 내용 기준] |
{m} | "a{3}b"는 "aaab"만 포함한다. |
{m,} | "a{2,}b"는 "aab", "aaab", "aaaab"를 포함한다. "ab"는 포함되지 않는다. |
{m, n} | "a{1,3}b"는 "ab", "aab", "aaab"를 포함하지만, "b"나 "aaaab"는 포함하지 않는다 |
\n | 1에서 9까지의 숫자를 의미 |
\d | Matches a digit character. |
\D | Matches a nondigit character. |
\w | Matches a word character. |
\W | Matches a nonword character. |
\s | Matches a whitespace character. |
\S | matches a non-whitespace character. |
자주 사용하는 Class Syntex는 아래와 같습니다.
[:alnum:] | 영어와 숫자 |
[:alpha:] | 알파벳, [A-Za-z] |
[:blank:] | 공백과 탭 |
[:digit:] | 숫자 |
[:lower:] | 소문자, [a-z] |
[:punct:] | 특수문자 |
[:space:] | 공백(스페이스) |
[:upper:] | 대문자, [A-Z] |
[가-힣] | 한글전체 |
자주 사용하는 응용편
1. "["와 "]" 사이에 문자를 공백 처리하기, 괄호의 정의를 정하고 사이의 내용을 제거하면 됩니다.
regexp_replace(s, "\\[.*\\]", "")
2. 숫자와 문자를 제외하고 모두 제거
regexp_replace(nm, '[^A-Z0-9 ]', '')
3. 공백이 2개 이상인 부분을 제거
REGEXP_REPLACE('Kontext is a website for data engineers.','[\s]{2,}', '')
4. 끝에 문자가 _(으로 시작하고)_(으로 사작하지 않는) 문자로 끝나는 것
regexp_replace('The_quick brown fox jumped over the_fence', '_[^_]*$','')
반응형
'IT Tech & Knowledge' 카테고리의 다른 글
ChatGPT API 연동 티스토리 자동글쓰기 포스팅 해보기 (2/2) (0) | 2023.03.05 |
---|---|
ChatGPT API 연동 티스토리 자동글쓰기 포스팅 해보기 (1/2) : 프로그램 포함 (0) | 2023.03.05 |
SQL Query 연습을 위한 기본 준비 (0) | 2023.01.17 |
원격제어 프로그램 PARSEC 파섹 셋팅하기 : 언제나 원격제어 가능 (0) | 2022.10.08 |
구글코랩 - 구글의 클라우드에서 GPU를 무료로 사용하는 분석 (0) | 2021.04.12 |
GeForce RTX 3080을 이용한 TensorFlow and NAMD 수행능력 (0) | 2020.10.13 |
깃허브 (GitHub) 사용법 (0) | 2020.10.11 |
GIT 설치하기 : 윈도우에서 바로 설치하기 (0) | 2020.10.10 |