如何拆分带有可变长度分隔符的文本

时间:2018-05-17 12:14:07

标签: python regex

我有这个文字

        Flu and pneumonia affect millions of people each year in the <em>United States</em>. .... 
Adams Pharmacy and Home Care. . . . . . . . .1961 First Ave,
         Opelika, AL 36801 . ...... Frys Food and Drug . . . . . . . . . . . . . . .8900 E
         Via <em>Linda</em>, Scottsdale, AZ 85258 . ...... American Health Solutions 
        Pharmacy Inc . . . . .3463 <em>Overland Ave</em>, Los ...

我想将它分成这7个元素 [必需的输出] : -

 - Flu and pneumonia affect millions of people each year in the <em>United States</em>
 - Adams Pharmacy and Home Care
 - 1961 First Ave, Opelika, AL 36801
 - Frys Food and Drug 
 - 8900 E Via <em>Linda</em>, Scottsdale, AZ 85258
 - American Health Solutions Pharmacy Inc
 - 3463 <em>Overland Ave</em>, Los

我试过

new_st.split(". .")

new_st.split(".")

但他们都没有能够给我我需要的输出。

1 个答案:

答案 0 :(得分:2)

您可以使用正则表达式执行拆分,然后稍微清理输出:

strs = re.split(r'\s*\.+\s*', s)
strs = [i.strip() for i in strs if i]

第二行由于拆分而​​摆脱了空字符串,然后strip()摆脱了无关的空格

如果您希望拆分n个或更多点(不含空格),可以使用以下正则表达式:

\s*\.{3,}\s*

还有空格:

(\s*\.\s*){3,}