Python regex substitution for comma match

For the input string as shown below, I am trying to substitute UK1/ after Street and every , and skip hyphen to create expected output shown below.

Input = Street1-2,4,6,8-10

Expected output = StreetUK/1-2,UK/4,UK/6,UK/8-10

With the regex pattern I have trouble substitute for each captured group. How can I capture all the required groups for every , and sub required string.


    replacements = []
    pattern = r"(Street)?(?:\d+)(((,)?(?:\d+))*[-]?(?:\d+))*"
    
    def replacement(x):
        replacements.append(f"{x.group(1)}{'UK'}/")
    
    input="Street1-2,4,6,8-10"
    m = re.sub(pattern, replacement, input)
    print(m, [''.join(x) for x in replacements] )
    

The above code just prints ['StreetUK/'] but not as expected.

Read more here: Source link