[python] 정규표현식을 이용한 신용카드 번호 형식인 문자열 추출하기
신용카드 번호는 일정한 형식을 가지고 있습니다. 예를 들어, Visa 카드는 16자리 숫자로 구성되어 있고, MasterCard는 16자리 숫자이며 첫 번째 숫자는 5 또는 2로 시작합니다. 이러한 신용카드 번호 형식을 추출하기 위해서는 정규표현식을 사용할 수 있습니다.
Python에서는 re
모듈을 사용하여 정규표현식을 처리할 수 있습니다.
신용카드 번호 형식인 문자열 추출하는 예제
import re
# 신용카드 번호 형식인 문자열
string = "My credit card number is 1234-5678-9012-3456."
# 정규표현식 패턴
pattern = r"\d{4}-\d{4}-\d{4}-\d{4}"
# 정규표현식 사용하여 신용카드 번호 형식인 문자열 추출
match = re.search(pattern, string)
if match:
credit_card_number = match.group()
print("추출된 신용카드 번호:", credit_card_number)
else:
print("신용카드 번호 형식의 문자열을 찾을 수 없습니다.")
위 예제에서는 re.search()
함수를 사용하여 정규표현식 패턴에 해당하는 문자열을 추출합니다. 추출된 결과를 match.group()
함수를 통해 가져와서 출력합니다.
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:
추출된 신용카드 번호: 1234-5678-9012-3456
정규표현식 패턴 설명
위 예제에서 사용한 정규표현식 패턴 r"\d{4}-\d{4}-\d{4}-\d{4}"
은 다음과 같은 의미를 가집니다:
\d
는 숫자를 의미합니다.{4}
는 앞의 패턴이 4번 반복되는 것을 의미합니다.-
는 하이픈 문자를 의미합니다.
즉, 위 패턴은 숫자 4개씩 하이픈으로 구분된 16자리 숫자를 추출하는 것을 의미합니다.
참고 자료
- Python
re
모듈 공식 문서: https://docs.python.org/3/library/re.html - 테스트할 수 있는 정규표현식 패턴 검증 사이트: https://regex101.com/