python取出txt文本中符合要求的数据,请问?

B-NAMEE-NAMEOOOOOOOOOOO

1 O
9 O
6 O
3 OO
1 O
2 OOOOOOOOO
广 OOOOOOOOOOOOOOB-NAMEM-NAMEE-NAMEOOOOOO
1 O
9 O
6 O
3 OO
8 OOOOOOOOOOOOOOOO

数据如上,空行分隔为一个句子,文字和标签之间以空格分隔,想要保留右侧标签含有B-NAME和M-NAME和E-NAME的句子,即希望处理后留下的是

B-NAMEE-NAMEOOOOOOOOOOOB-NAMEM-NAMEE-NAMEOOOOOO
1 O
9 O
6 O
3 OO
8 OOOOOOOOOOOOOOOO

请问用python怎么处理呢?请赐教,不胜感激。

list1 = []
with open('test.txt', 'r') as FA:
    for line in FA:
        line = line.strip()
        if line == "":
            list1.append('#')
            continue
        list1.append(line)

list1Str = "_".join(i for i in list1)

finalList = []
for eachStr in list1Str.split('#'):
    if "B-NAME" in "".join(i for i in eachStr.split('_')) or "M-NAME" in "".join(i for i in eachStr.split('_')) or "E-NAME" in "".join(i for i in eachStr.split('_')):
        finalList.append(eachStr)

for li in finalList:
    li = li.split('_')
    for eachLi in li:
        print(eachLi)

img

是要这样的吗?

没看明白需求, 是只留含名字的行,不同名字用空行分隔?
就像这样?

刘 B-NAME
晔 E-NAME

梁 B-NAME
中 M-NAME
华 E-NAME

list1=【】
list2=【】
with open ("a.txt", "r", encoding="utf-8") as f:
for line in f:
if "ANAME" in line:
list 1.append(line)
elif "BNAME" in line:
list 2.append(line)
elif:
continue