문자열이 영숫자(alphanumeric) 문자로 끝나는지 확인해야 할 때는 정규 표현식(Regular Expression)을 사용하는 것이 가장 간편합니다. 파이썬에서는 내장 모듈인 re를 활용하여 특정 패턴과 일치하는지 손쉽게 검사할 수 있습니다.
이 글에서는 문자열의 마지막 문자가 알파벳(a~z, A~Z) 또는 숫자(0~9)인지 판별하는 메서드를 정의하고, 그 결과를 출력하는 방법을 소개합니다.
핵심 아이디어
정규 표현식 [a-zA-Z0-9]$에서 $ 기호는 '문자열의 끝'을 의미합니다. 따라서 이 패턴은 문자열의 마지막 문자가 영문자나 숫자일 때만 일치하게 됩니다.
예제
아래는 전체 동작 과정을 보여주는 예제 코드입니다.
import re
regex_expression = '[a-zA-Z0-9]$'
def check_string(my_string):
if(re.search(regex_expression, my_string)):
print("The string ends with alphanumeric character")
else:
print("The string does not end with alphanumeric character")
my_string_1 = "Python@"
print("The string is :")
print(my_string_1)
check_string(my_string_1)
my_string_2 = "Python1245"
print("\nThe string is :")
print(my_string_2)
check_string(my_string_2)출력 결과
The string is : Python@ The string does not end with alphanumeric character The string is : Python1245 The string ends with alphanumeric character
코드 설명
먼저 정규 표현식을 다루기 위한 필수 모듈인
re를 임포트합니다.검사에 사용할 정규 표현식 문자열
[a-zA-Z0-9]$를 정의합니다. 이 패턴은 영문 대소문자와 숫자가 문자열 맨 끝에 위치하는지 확인합니다.check_string이라는 이름의 함수를 정의하고, 검사할 문자열을 매개변수로 전달받습니다.함수 내부에서는
re.search()메서드를 호출하여 문자열이 지정된 패턴(영숫자로 끝남)과 일치하는지 확인합니다.패턴이 일치하면 '영숫자로 끝난다'는 메시지를, 일치하지 않으면 '영숫자로 끝나지 않는다'는 메시지를 출력합니다.
함수 외부에서 두 개의 테스트 문자열(
"Python@","Python1245")을 정의하고 콘솔에 출력한 뒤, 각각 함수에 전달하여 호출합니다.첫 번째 문자열은 특수문자
@로 끝나므로 조건에 맞지 않고, 두 번째 문자열은 숫자로 끝나므로 조건에 부합한다는 결과가 콘솔에 표시됩니다.
마무리
이처럼 정규 표현식의 $ 앵커와 문자 클래스를 조합하면 문자열의 끝부분을 간단하고 명확하게 검증할 수 있습니다. 입력값 유효성 검사나 데이터 클렌징 작업에서 유용하게 활용할 수 있는 패턴이니 참고하시기 바랍니다.