例如这是我的方法
import re
text = "ONE:;TWO:,,d,-;THREE:fsdfsd;FOUR:43879293847;FIVE:dsa. dsa, 56;SIX: ;SEVEN:,,,;EIGHT:--;"
def parser(string):
prepare = []
string = list(filter(None, string.split(";")))
for i in string:
s = i.split(":")
j = len(list(filter(None, s)))
if j == 2 and re.match("^[A-Za-z0-9_-]*$",s[1]):
prepare.append(i)
final = ";".join(prepare) + ";"
return final
print(parser(text))
它只返回THREE
, FOUR
and EIGTH
,但我也想包含TWO
andFIVE
和排除EIGTH
。也许这不是实现我的目标的最佳方法,但如何将TWO
and包含FIVE
在其中而不包含SEVEN
and EIGTH
?
先感谢您。