Wild Card ?

손지웅·2025년 3월 25일

공부를 하다 보면 와일드 카드라는 말이 자주 등장한다.

문자를 대신하는 특수 기호

 # 🃏 프로그래밍에서의 와일드카드(Wildcard)

파일 처리 및 문자열 검색에서의 와일드카드

기호의미예시
*0개 이상의 모든 문자"a*""a", "abc", "apple"
?임의의 한 문자"a?c""abc", "acc" 가능, "aabc"는 안 됨
# 쉘 명령어에서
ls *.txt         # 모든 .txt 파일
ls file_??.log   # file_01.log, file_ab.log 등 2글자 뒤에 .log

SQL에서의 와일드카드 (LIKE절과 함께 사용)

기호의미
%0개 이상의 모든 문자
_정확히 한 글자
SELECT * FROM users WHERE name LIKE '김%';   -- '김'으로 시작하는 이름
SELECT * FROM users WHERE id LIKE 'user_';  -- 'user1', 'userA' 등 한 글자 뒤에 있는 id

정규 표현식에서의 와일드카드 (. 등)

  • . → 임의의 한 문자
  • .* → 0개 이상의 모든 문자
import re
re.match("a.*b", "apple_b")  # True → 'a'로 시작하고 '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 ...>

0개의 댓글