[SQL νμ©] μ κ· ννμ
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