좋아요! 정규표현식을 처음 배우는 분도 이해할 수 있도록, Oracle 19c에서 사용하는 정규표현식 패턴을 쉬운 설명 + 예시 중심으로 하나씩 자세히 설명드릴게요.
⸻
정규표현식 기초 패턴 설명 (Oracle 기준)
패턴 | 의미 | 쉬운 설명 | 예시 |
---|---|---|---|
. | 임의의 한 글자 | 어떤 글자든 한 글자만 | a.c → "abc", "axc"
|
* | 0회 이상 반복 | 없어도 되고, 많아도 됨 | a* → "", "a", "aa", "aaa"
|
+ | 1회 이상 반복 | 적어도 한 번은 나와야 함 | a+ → "a", "aa", "aaa"
|
? | 0회 또는 1회 | 있을 수도, 없을 수도 있음 | ab? → "a", "ab"
|
^ | 문자열의 시작 | 맨 앞에서 시작해야 함 | ^a → "apple"에는 일치, "banana"에는 불일치
|
$ | 문자열의 끝 | 맨 끝에서 끝나야 함 | ing$ → "playing", "going"
|
[abc] | 괄호 안 문자 중 하나 | a, b, c 중 하나와 일치 | [abc] → "a", "b", "c"
|
[^abc] | 괄호 안 문자 제외 | a, b, c를 제외한 문자와 일치 | [^abc] → "d", "x"
|
[a-z] | 알파벳 범위 | a부터 z 중 하나 | [A-Z] → 대문자, [0-9] → 숫자
|
{n} | 정확히 n번 반복 | 정확히 n번 반복됨 | a{3} → "aaa"
|
{n,} | n번 이상 반복 | n번 이상 반복됨 | a{2,} → "aa", "aaa", ...
|
{n,m} | n~m회 반복 | n 이상 m 이하 반복 | a{2,4} → "aa", "aaa", "aaaa"
|
또는(OR) | 둘 중 하나 | dog → "cat", "dog" | |
\ | 이스케이프 문자 | 특수기호를 문자로 인식 | \. → 점(.) 자체
|
⸻
예시로 이해하기
1. '^[A-Z][a-z]+$'
→ 의미: 첫 글자는 대문자, 그 뒤는 소문자 한 글자 이상, 전체가 한 단어 • 일치: "John", "David" • 불일치: "john", "DAVID", "John123"
⸻
2. ^[0-9]{3}-[0-9]{4}-[0-9]{4}$
→ 의미: 전화번호 형식 (숫자3-숫자4-숫자4) • 일치: "010-1234-5678" • 불일치: "10-1234-5678", "01012345678"
⸻
3. '^\d{6}-\d{7}$'
→ 의미: 주민등록번호 형식 (6자리-7자리 숫자) → \d는 숫자 [0-9]와 같음 • 일치: "990101-1234567" • 불일치: "9901011234567", "99-0101-1234567"
⸻
정리: 실전에서 정규표현식은 이런 데에 유용합니다