공부를 하다 보면 와일드 카드라는 말이 자주 등장한다.
문자를 대신하는 특수 기호
# 🃏 프로그래밍에서의 와일드카드(Wildcard)
파일 처리 및 문자열 검색에서의 와일드카드
| 기호 | 의미 | 예시 |
|---|
* | 0개 이상의 모든 문자 | "a*" → "a", "abc", "apple" 등 |
? | 임의의 한 문자 | "a?c" → "abc", "acc" 가능, "aabc"는 안 됨 |
ls *.txt
ls file_??.log
SQL에서의 와일드카드 (LIKE절과 함께 사용)
| 기호 | 의미 |
|---|
% | 0개 이상의 모든 문자 |
_ | 정확히 한 글자 |
SELECT * FROM users WHERE name LIKE '김%';
SELECT * FROM users WHERE id LIKE 'user_';
정규 표현식에서의 와일드카드 (. 등)
. → 임의의 한 문자
.* → 0개 이상의 모든 문자
import re
re.match("a.*b", "apple_b")
제네릭(Generic)에서의 와일드카드 (Java, Kotlin 등)
타입을 유연하게 표현할 때 와일드카드를 사용
| 표현 | 의미 |
|---|
<?> | 모든 타입 허용 |
<? extends Number> | Number나 그 하위 클래스만 허용 |
<? super Integer> | Integer나 그 상위 클래스만 허용 |
List<?> list = new ArrayList<String>();
List<? extends Number> nums = new ArrayList<Integer>();
| 분야 | 와일드카드 용도 | 기호 |
|---|
| 파일/문자열 검색 | 문자 패턴 대체 | *, ? |
SQL LIKE | 문자열 필터링 | %, _ |
| 정규 표현식 | 복잡한 문자 매칭 | ., .* |
| 제네릭 타입 (Java 등) | 타입 범위 표현 | <?>, <? extends ...> |