In [1]:
import re

In [12]:
test = ["123456", "1234", "12'34\"56", "1'23\"45",  "12\"34", "1\"23", "1m23", "12m34", "1\"23\"45", "1\"234\"56", "1'234\"56", "3m00","3m00"]

In [4]:
reg1 = re.compile(r"[0-9]{6}")

In [5]:
for s in test:
    m1 = reg1.match(s)
    if m1: print(s, m1.span())
    else: print(s, m1)


123456 (0, 6)
1234 None
12'34"56 None
1'23"45 None
12"34 None
1"23 None
1m23 None
12m34 None
1"23"45 None
1"234"56 None
1'234"56 None
3m00 None

In [6]:
reg2 = re.compile(r"[0-9]{1,2}'[0-9]{2}\"[0-9]{2}")

In [7]:
for s in test:
    m2 = reg2.match(s)
    if m2: print(s, m2.span())
    else: print(s, m2)


123456 None
1234 None
12'34"56 (0, 8)
1'23"45 (0, 7)
12"34 None
1"23 None
1m23 None
12m34 None
1"23"45 None
1"234"56 None
1'234"56 None
3m00 None

In [8]:
reg3 = re.compile(r"[0-9]{1,2}\"[0-9]{2}")
for s in test:
    m3 = reg3.fullmatch(s)
    if m3: print(s, m3.span())
    else: print(s, m3)


123456 None
1234 None
12'34"56 None
1'23"45 None
12"34 (0, 5)
1"23 (0, 4)
1m23 None
12m34 None
1"23"45 None
1"234"56 None
1'234"56 None
3m00 None

In [9]:
reg4 = re.compile(r"[0-9]{1,2}m[0-9]{2}")
for s in test:
    m4 = reg4.match(s)
    if m4: print(s, m4.span())
    else: print(s, m4)


123456 None
1234 None
12'34"56 None
1'23"45 None
12"34 None
1"23 None
1m23 (0, 4)
12m34 (0, 5)
1"23"45 None
1"234"56 None
1'234"56 None
3m00 (0, 4)

In [10]:
def clean_PB(PB):
        # reg1: 6-num
        m = reg1.fullmatch(PB)
        if m and m.span() == (0,6): return PB
        
        # reg2: Readable 12'34"56
        m = reg2.fullmatch(PB)
        if m:
            if m.span() == (0,8): return PB[0:2]+PB[3:5]+PB[6:]
            elif m.span() == (0,7): return "0"+PB[0]+PB[2:4]+PB[5:]
        
        # reg3: Readable 12"34
        m = reg3.fullmatch(PB)
        if m:
            if m.span() == (0,5): return "00"+PB[0:2]+PB[3:]
            elif m.span() == (0,4): return "000"+PB[0:1]+PB[2:]

        # reg4: Readable 12m34
        m = reg4.fullmatch(PB)
        if m:
            if m.span() == (0,5): return "00"+PB[0:2]+PB[3:]
            elif m.span() == (0,4): return "000"+PB[0:1]+PB[2:]

In [13]:
for t in test:
    print(clean_PB(t), "\t", t)


123456 	 123456
None 	 1234
123456 	 12'34"56
012345 	 1'23"45
001234 	 12"34
000123 	 1"23
000123 	 1m23
001234 	 12m34
None 	 1"23"45
None 	 1"234"56
None 	 1'234"56
None 	 3m00
000300 	 3m00

In [14]:
"3m00" == "3m00"


Out[14]:
False

In [18]:
"3m00" == "3m00"


Out[18]:
True

In [ ]: