Compare dotted version strings
Return a negative number, zero, or a positive number for less, equal, or greater.
18th August 2026
import re
from typing import List
def version_compare(version1: str, version2: str) -> int:
def normalize(v: str) -> List[int]:
return [int(x) for x in re.sub(r'(\.0+)*$', '', v).split(".")]
def cmp(left, right):
return (left > right) - (left < right)
return cmp(normalize(version1), normalize(version2))