프로그래밍/Python

[python] "v1.v2.v3.v4" 버전 문자열을 숫자들로 변환하기

채윤아빠 2024. 7. 2. 09:12
728x90
반응형

개요

일반적으로 이용하는 "v1.v2.v3.v4" 버전 문자열에서 각각의 숫자들을 추출하는 방법을 알아 보겠습니다.

크게 두 가지(split(), 정규식) 방법으로 추출할 수 있습니다.


split() 메소드 이용법

간단하게 문자열의 split() 메소드를 이용하여, 버전 문자열의 "." 문자로 나누어서 int 형식으로 변환하면 됩니다.

version_str = "1.2.3.4"
parts = version_str.split('.')
v1, v2, v3, v4 = map(int, parts)


직관적이지만 "1.2.3.4a"과 같이 알파벳이 입력된 경우 "ValueError: invalid literal for int() with base 10: '4a'"와 같은 오류가 발생합니다.

따라서 올바른 버전 문자열이 입력되었는지 유효성 검사가 별도로 필요합니다.


정규식 이용법

버전 문자열의 유효성도 검사하면서 추출할 때 유용합니다.

version_str = "1.2.3.4"
match = re.match(r'^(\d+)\.(\d+)\.(\d+)\.(\d+)$', version_str)
if match:
    v1, v2, v3, v4 = map(int, match.groups())


"1.2.3.4a"과 같이 알파벳이 입력된 경우, 패턴과 일치하지 않기 때문에 결과가 반환되지 않습니다.