import re
texts = [ '1. 10.25% 2. 11% 3. 9.75% 4. 4.3%' ,
'1.promising.2.inappropriately3.essential.4.itense.' ,
'1. He has not been attending 2. English classes 3. since one month4. No error' ,
'1. X got 15 shares2. B got 25 shares3. W got 54. shares.4. Mark got 2.5 shares' ]
pattern = r'(?<!\d ){}\. '
for text in texts:
bps = [ ]
prev = 0
for i in range ( 1 , 1000 ) :
rx = re .compile ( pattern.format ( i) )
m = rx.search ( text, prev)
if m:
if prev != m.start ( ) :
bps.append ( text[ prev:m.start ( ) ] .strip ( ) )
prev = m.start ( )
else :
break
if prev < len ( text) - 1 :
bps.append ( text[ prev:] .strip ( ) )
print ( bps)
aW1wb3J0IHJlCgp0ZXh0cyA9IFsnMS4gMTAuMjUlIDIuIDExJSAzLiA5Ljc1JSA0LiA0LjMlJywKJzEucHJvbWlzaW5nLjIuaW5hcHByb3ByaWF0ZWx5My5lc3NlbnRpYWwuNC5pdGVuc2UuJywKJzEuIEhlIGhhcyBub3QgYmVlbiBhdHRlbmRpbmcgMi4gRW5nbGlzaCBjbGFzc2VzIDMuIHNpbmNlIG9uZSBtb250aDQuIE5vIGVycm9yJywKJzEuIFggZ290IDE1IHNoYXJlczIuIEIgZ290IDI1IHNoYXJlczMuIFcgZ290IDU0LiBzaGFyZXMuNC4gTWFyayBnb3QgMi41IHNoYXJlcyddCgpwYXR0ZXJuID0gcicoPzwhXGQpe31cLicKZm9yIHRleHQgaW4gdGV4dHM6CglicHMgPSBbXQoJcHJldiA9IDAKCWZvciBpIGluIHJhbmdlKDEsMTAwMCk6CgkJcnggPSByZS5jb21waWxlKHBhdHRlcm4uZm9ybWF0KGkpKQoJCW0gPSByeC5zZWFyY2godGV4dCwgcHJldikKCQlpZiBtOgoJCQlpZiBwcmV2ICE9IG0uc3RhcnQoKToKCQkJICAgIGJwcy5hcHBlbmQodGV4dFtwcmV2Om0uc3RhcnQoKV0uc3RyaXAoKSkKCQkJcHJldiA9IG0uc3RhcnQoKQoJCWVsc2U6CgkJCWJyZWFrCglpZiBwcmV2IDwgbGVuKHRleHQpIC0gMToKCQlicHMuYXBwZW5kKHRleHRbcHJldjpdLnN0cmlwKCkpCglwcmludChicHMpIA==
stdout
['1. 10.25%', '2. 11%', '3. 9.75%', '4. 4.3%']
['1.promising.', '2.inappropriately', '3.essential.', '4.itense.']
['1. He has not been attending', '2. English classes', '3. since one month', '4. No error']
['1. X got 15 shares', '2. B got 25 shares', '3. W got 54. shares.', '4. Mark got 2.5 shares']