[파이썬] 문자 클래스와 범위 표현

Python 에서는 정규 표현식을 사용하여 문자열 패턴을 검색하고 조작할 수 있습니다. 문자 클래스와 범위 표현은 정규 표현식에서 자주 사용되는 강력한 기능 중 하나입니다. 이번 글에서는 Python에서 문자 클래스와 범위 표현을 어떻게 사용하는지 알아보겠습니다.

문자 클래스

문자 클래스는 대괄호 안에 문자 집합을 지정하여 해당 위치에서 일치하는 문자를 찾는 데 사용됩니다. 예를 들어, [abc] 는 a, b 또는 c와 일치하는 단일 문자에 대응됩니다. 문자 클래스는 대소문자를 구분하므로 [A-Z] 는 대문자 알파벳에 대응되고, [a-z] 는 소문자 알파벳에 대응됩니다.

문자 클래스는 여러 문자를 동시에 일치시킬 수도 있습니다. 예를 들어, [abcde] 는 a, b, c, d 또는 e와 일치하는 단일 문자에 대응됩니다.

문자 클래스는 ^ 기호를 사용하여 일치하지 않는 문자를 지정할 수도 있습니다. 예를 들어, [^abc] 는 a, b 또는 c가 아닌 문자와 일치합니다.

범위 표현

범위 표현은 대괄호 안에서 연속된 문자의 범위를 지정하는 데 사용됩니다. 예를 들어, [0-9] 는 0부터 9까지의 숫자에 대응됩니다. 이와 마찬가지로, [A-Z] 는 대문자 알파벳에 대응되고, [a-z] 는 소문자 알파벳에 대응됩니다.

범위 표현은 숫자 및 문자에만 사용할 수 있는 것은 아닙니다. 예를 들어, [!-#] 는 ASCII 값으로 33에서 35 사이에 해당하는 문자와 일치합니다. 범위 표현은 유니코드 문자에도 사용할 수 있습니다.

예제 코드

다음은 Python에서 문자 클래스와 범위 표현을 사용하는 간단한 예제 코드입니다.

import re

# 문자 클래스
text = "The quick brown fox jumps over the lazy dog."
pattern = "[aeiou]"
result = re.findall(pattern, text)
print(result)  # ['e', 'u', 'i', 'o', 'o', 'u', 'o', 'e', 'e', 'a', 'o']

# 범위 표현
text = "I have 10 cats and 2 dogs."
pattern = "[0-9]"
result = re.findall(pattern, text)
print(result)  # ['1', '0', '2']

위의 예제 코드에서는 re 모듈을 가져와서 findall() 함수를 사용하여 주어진 패턴과 일치하는 모든 문자를 찾습니다. 결과는 리스트 형태로 반환됩니다.

문자 클래스와 범위 표현은 정규 표현식에서 매우 유용한 도구입니다. 이를 활용하여 원하는 패턴을 검색하고 문자열을 조작하는 데 사용할 수 있습니다.

정규 표현식에 대한 더 자세한 내용은 Python 공식 문서를 참조하시기 바랍니다.

이 글은 OpenAI Codex를 활용하여 작성되었습니다.