Python - Splitting numbers and letters into sub-strings with regular expression

前端 未结 2 1766
不知归路
不知归路 2021-01-25 09:59

I am creating a metric measurement converter. The user is expected to enter in an expression such as 125km (a number followed by a unit abbreviation). For conversio

2条回答
  •  不要未来只要你来
    2021-01-25 10:24

    What's wrong with re.findall ?

    >>> s = '125km'
    >>> re.findall(r'[A-Za-z]+|\d+', s)
    ['125', 'km']
    

    [A-Za-z]+ matches one or more alphabets. | or \d+ one or more digits.

    OR

    Use list comprehension.

    >>> [i for i in re.split(r'([A-Za-z]+)', s) if i]
    ['125', 'km']
    >>> [i for i in re.split(r'(\d+)', s) if i]
    ['125', 'km']
    

提交回复
热议问题