2017-05-18 7 views
0

Ich versuche, eine relativ einfache Funktion in Python zu schreiben, die Telefonnummer analysiert. Im Moment bereitet mir die RegEx Probleme. Nämlich führende Nullen, die ich gerne behalten würde.RegEx Omits führende Nullen

Wie kann ich ändern sie gehalten, so werden die führenden Nullen? Das Muster hält auch 4 Gegenstände am Ende, was unerwünscht ist. Es sind höchstens drei Ziffern im letzten Block erwünscht.

phone_number = re.sub("(\d{3})(?=(\d)+(?!\d))", r"\1-", "%d" % int(clean_number[:-1])) + clean_number[-1] 

Was Ich mag würde, ist so etwas wie dieses:

Input: 00112223344 Output: 001-122-233-44

+2

Wenn Sie führende Nullen nicht entfernen lassen möchten, verwenden Sie nicht 'int'. Das hat nichts mit der Regex zu tun, sie sind weg, bevor es da ist. – jonrsharpe

+1

Die Regex macht nichts mit führenden Nullen. '"% d "% int (...)' verwirft führende Nullen. – user2357112

+0

Bekam es. Was ist mit den Viererblocks am Ende? Wie kann ich sicherstellen, dass der letzte Block auf der rechten Seite maximal 3 Ziffern hat? – MadPhysicist

Antwort

0

Try this -

phone_number = re.sub(r'(\d{3})', r'\1-', phone_number) 

Es sollte funktionieren. Hier ist die demo

Verwandte Themen