Search code examples
pythonpython-re

Remove characters after matching two conditions


I have the Python code below and I would like the output to be a string: "P-1888" discarding all numbers after the 2nd "-" and removing the leading 0's after the 1st "-".

So far all I have been able to do in the following code is to remove the trailing 0's:

import re

docket_no = "P-01888-000"

doc_no_rgx1 = re.compile(r"^([^\-]+)\-(0+(.+))\-0[\d]+$")
massaged_dn1 = doc_no_rgx1.sub(r"\1-\2", docket_no)

print(massaged_dn1)

Solution

  • You can use the split() method to split the string on the "-" character and then use the join() method to join the first and second elements of the resulting list with a "-" character. Additionally, you can use the lstrip() method to remove the leading 0's after the 1st "-". Try this.

    docket_no = "P-01888-000"
    docket_no_list = docket_no.split("-")
    docket_no_list[1] = docket_no_list[1].lstrip("0")
    massaged_dn1 = "-".join(docket_no_list[:2])
    
    print(massaged_dn1)