1. ์ ๊ท ํํ์
- ๋ฌธ์์ด →(๊ณตํต๋ ํน์ง)→ ์ผ๋ฐํํ๋ ๊ท์น
- ์ ๊ท ํํ์ ํจ์(REGEXP_ํจ์): ex. REGEXP_INSTR, REGEXP_SUBSTR...
- ์ ๊ท ํํ์์ ์ฌ์ฉํ๋ฉด ์ข์ ์ด์
ex. ์ผ๋ฐํ ๊ท์น ์ฐพ์๋ด๊ธฐ
โ MY34
โก B123TT
โข 456789B
โฃ ME!!!
โค ABCDE
→ ์ซ์,๋ฌธ์ ๋ชจ๋ ํฌํจ: โ , โก, โข
→ ์ซ์ 3๊ฐ ์ด์ ์ฐ์์ : โก, โข
→ ์์์ ๊ฒฝ์ฐ ๊ณตํต ํจํด์ ๋ฌธ์์ด์ด 2๊ฐ ๋ฐ์ ์์ด์ ์ง์ ์ง์ ํ ์ ์์ง๋ง, ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ ์ผ์ผํ ์ง์ ํ๊ธฐ ์ด๋ ค์ธ ์ ์์ด ์ ๊ท ํํ์์ ์ฌ์ฉํ๋ฉด ๋ ํธ๋ฆฌํจ.
2. ์ ๊ท์ ํํ ์ข ๋ฅ
- ์๋ฌธ์, ๋๋ฌธ์ ์ฃผ์
| ์ข ๋ฅ | ์๋ฏธ | ์์ |
| \d [:digit:] [0-9] |
Digit, 0, 1, 2, ..., 9 | |
| \D | ์ซ์๊ฐ ์๋ ๊ฒ | |
| \s | ๊ณต๋ฐฑ | |
| \t | Tab | |
| \n | New line(์ํฐ ๋ฌธ์) | |
| \w | ๊ธ์(์ซ์, ์·๊ตญ๋ฌธ์, (_)) | REGEXP_REPLACE('aA!23์ ๋ฅ._-', \w, ' ') → ! .- |
| \W | ๊ณต๋ฐฑ, (_) ์ ์ธํ ํน์๊ธฐํธ | REGEXP_REPLACE('aA!23์ ๋ฅ._-', \W, ' ') → aA23์๋ฅ_ |
| ^ | ์์๋๋ ๊ธ์ | a๋ก ์์ํ๋ → ^a |
| $ | ๋ง์ง๋ง ๊ธ์ | ์ซ์๋ก ๋๋๋ → \d$ |
| \ | ๋ค์ ๊ธฐํธ ์๋ฏธ ์ ๊ฑฐ | '(1234...์ ์๋ '(' ์ฐพ๊ธฐ → - ()์ ๊ทธ๋ฃน ์ง์ ํ๋ ์ ๊ท ํํ์ ์ค ์ผ๋ถ์ด๋ฏ๋ก \์ ์ฌ์ฉํ๋ฉฐ ๋ค์ ๊ธฐํธ์ ์๋ฏธ๋ฅผ ์ ๊ฑฐ ํ๋ค. (ex. ์ ํ๋ฒํธ) |
| () | ๊ทธ๋ฃน ์ง์ | |
| | | ๋๋ | abc a123 b123 a ๋๋ b๋ก ์์ ์ฐพ๊ธฐ → ^(a|b) |
| . | ์ํฐ๋ฅผ ์ ์ธํ ๋ชจ๋ ํ๊ธ์(์ซ์, ๋ฌธ์, ๊ณต๋ฐฑ, ํน์๊ธฐํธ ํฌํจ) | ^a.+ → a๋ก ์์ํ๋ฉด์ ๋ค์ ์ด๋ค๊ฒ ์๋ ์๊ด ์์(.+) |
| + | ์ฐ์์ (์ฌ๋ฌ๊ฐ) | |
| [abc] | a ๋๋ b๋๋ c - ๋๊ดํธ ํ๋๋น 'ํ๊ธ์' |
^[abc] → a ๋๋ b๋๋ c๋ก ์์ํ๋ ๋ฌธ์ ์ฐพ๊ธฐ |
| i+ i* i? |
i๊ฐ 1ํ ์ด์ ๋ฐ๋ณต i๊ฐ 0ํ ์ด์ ๋ฐ๋ณต 0ํ์์ 1ํ ๋ฐ๋ณต |
i๋ฅผ ํฌํจํ i๋ฅผ ๋ฏธํฌํจํ i๋ฅผ ํฌํจํ๊ฑฐ๋, ๋ฏธํฌํจ ํ๊ฑฐ๋ |
| i{n} i{n1, n2} i[n, ] |
i๊ฐ nํ ๋ฐ๋ณต i๊ฐ n1์์ nํ ๋ฐ๋ณต i๊ฐ nํ ์ด์ ๋ฐ๋ณต |
b[4] → bbbb b[2,4] → bb \n bbbb b[2,] → bb |
| [:punct:] | ํน์๋ฌธ์ | |
| [:alnum:] | ๋ฌธ์์ ์ซ์ | |
| [:print:] | ์ซ์, ๋ฌธ์, ํน์๋ฌธ์, ๊ณต๋ฐฑ ๋ชจ๋ |
3. ์ ๊ท์ ํํ ํจ์
1) REGEXP_REPLACE
- ์ ๊ท์ ํํ์ ์ฌ์ฉํ(REGEXP_) ๋ฌธ์์ด ์นํ, ์ญ์ ๊ฐ๋ฅ(REPLACE)
- ๋ฌธ๋ฒ
REGEXP_REPLACE(๋์, ์ฐพ์ ๋ฌธ์์ด, [๋ฐ๊ฟ ๋ฌธ์์ด], [๊ฒ์ ์์น], [๋ฐ๊ฒฌ ํ์], [์ต์ ])
→ ๋์์์ ์ด๋ค๊ฑธ ์ฐพ์์, ์ด๋ป๊ฒ ๋ฐ๊ฟ๋, ๋ช ๋ฒ์งธ ์์น์์, ๋ช ๋ฒ์งธ๋ก ๋ฐ๊ฒฌ๋๋ ๊ฒ์ ์นํ(|์ญ์ ) ํ ๋?
- [๋ฐ๊ฟ ๋ฌธ์์ด] : ์๋ต์ ์ญ์
- [๊ฒ์ ์์น] : ์๋ต์ 1
- [๋ฐ๊ฒฌ ํ์] : ์๋ต์ 0(๋ชจ๋ ๊ฒ)
- [์ต์ ] :
c(๊ธฐ๋ณธ) → ๋์ ๊ตฌ๋ถํ์ฌ ๊ฒ์
i → ๋์ ๊ตฌ๋ถํ์ง ์๊ณ ๊ฒ์ (= [A-z]) (= [a - zA-Z]
m → ํจํด์ ๋ค์ค๋ผ์ธ์ผ๋ก ์ ์ธ ๊ฐ๋ฅ
2) REGEXP_SUBSTR
- ์ ๊ท์ ํํ์ ์ฌ์ฉํ(REGEXP_) ๋ฌธ์์ด ์ถ์ถ(SUBSTR)
- ๋ฌธ๋ฒ
REGEXP_SUBSTR(๋์, ํจํด, [๊ฒ์ ์์น], [๋ฐ๊ฒฌ ํ์], [์ต์ ], [์ถ์ถ ๊ทธ๋ฃน])
→ ๋์์ ์ด๋ค ํจํด์ ๊ฐ์ง๋ก ์๋, ์ด๋์์ ๋ถํฐ, ๋ช ๋ฒ์งธ๋ก ๋ฐ๊ฒฌ๋๋ [์ต์ : null] ๊ทธ๋ฃน์ ์ฐพ์ ๊บผ์ผ?
- [๊ฒ์ ์์น] : ์๋ต์ 1
- [๋ฐ๊ฒฌ ํ์] : ์๋ต์ 1
- [์ต์ ] : REGEXP_REPLACE()์ ๋์ผ
- [์ถ์ถ ๊ทธ๋ฃน] : ์๋ธ ํจํด ๋ฒํธ
3) REGEXP_INSTR
- ์ฃผ์ด์ง ๋ฌธ์์ด์์ ํน์ ํจํด์ ์์ ์์น ๋ฐํ
- ๋ฌธ๋ฒ
REGEXP_INSTR(๋์, ์ฐพ์ ํจํด, [์์ ์์น], [๋ฐ๊ฒฌ ํ์], [์ถ๋ ฅ ์ต์ ], [์ต์ ], [์ถ์ถ ๊ทธ๋ฃน])
→ ๋์์์ ์ด๋ค ํจํด์ ๊ฐ์ง๊ณ ์๋ ์ด๋์์ ๋ถํฐ ์์ ํ๋ ๋ช ๋ฒ์งธ๋ก ๋ฐ๊ฒฌ๋๋ [์์์์น|๋์์น] ๊ฐ ๋ฐํ
- [์์ ์์น] : ์๋ต์ 1
- [๋ฐ๊ฒฌ ํ์] : ์๋ต์ ์ฒ์ ๋ฐ๊ฒฌ๋ ๋ฌธ์์ด ์์น ๋ฆฌํด
- [์ถ๋ ฅ ์ต์ ] :
0(๊ธฐ๋ณธ๊ฐ) : ๋ฌธ์์ด์ ์์์์น ๋ฆฌํด
1 : ๋ฌธ์์ด์ ๋์์น ๋ฆฌํด
ex. 12abc34 → abc๋ฅผ ์ฐพ๊ณ ์ถ์๋: 0์ด๋ฉด 'a' / 1์ด๋ฉด 'c'๋ฅผ ์ฐพ์
4) REGEXP_LIKE
- ์ฃผ์ด์ง ๋ฌธ์์ด์์ ํน์ ํจํด์ ๊ฐ๋ ๊ฒฝ์ฐ ๋ฐํ
- WHERE์ ์ฌ์ฉ
- ๋ฌธ๋ฒ
REGEXP_LIKE(๋์, ์ฐพ์ ๋ฌธ์์ด, [์ต์ ])
→ ๋์์์ ์ด๋ค ๊ฑธ ์ฐพ์ ๊บผ์ผ?
- [์ต์ ] :
REGEXP_REPLACE()์ ๋์ผ
5) REGEXP_COUNT
- ์ฃผ์ด์ง ๋ฌธ์์ด์์ ํน์ ํจํด์ ํ์ ๋ฐํ
- ๋ฌธ๋ฒ
REGEXP_COUNT(๋์, ์ฐพ์ ๋ฌธ์์ด, [์์ ์์น], [์ต์ ])
- [์์ ์์น] : ์๋ต์ 1
'์๊ฒฉ์ฆ > SQLD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [SQL/Oracle] NULL ์นํ ํจ์ (0) | 2025.11.12 |
|---|---|
| [SQLD] ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ดํด (1) | 2025.11.10 |
| [SQL ๊ธฐ๋ณธ] ์๋ธ์ฟผ๋ฆฌ (0) | 2025.11.09 |