<p>这会有帮助吗?在</p>
<pre><code>str = "D Staph. aureus Ps. aeruginosa E. coli ATCC Ser. Asp.
Cand. albicans"
list = []
for s in str.split():
if "." in s:
list.append(s)
elif list:
list[-1] = f"{list[-1]} {s}"
print(list)
</code></pre>
<p>输出:</p>
^{pr2}$
<p>这将在空白处拆分字符串,然后遍历结果数组并在列表中启动一个新条目(如果单词包含“.”),并将该索引追加到列表中,直到遇到下一个带有“.”的单词。在</p>
<p>我看不到一条规则可以应用于所有行,但通过以下两个示例,我们可以做到:</p>
<pre><code>line1 = "D Staph. aureus Ps. aeruginosa E. coli ATCC Ser. Asp. Cand. albicans"
line2 = "a ATCC 6538, ATCC 9027, Ps. 8739, Ent. marcescens brasiliensis ATCC 10231,"
for line in (line1, line2):
if line[0] == "D":
list = []
for s in line.split():
if "." in s:
list.append(s)
elif list:
list[-1] = f"{list[-1]} {s}"
print(list)
if line[0] == "a":
count = 0
list = []
for s in line2[3:]:
if count % 15 == 0 or count == 0:
list.append(s)
if len(list) > 1: list[-2] = list[-2].rstrip()
else:
list[-1] = f"{list[-1]}{s}"
count += 1
print(list)
</code></pre>
<p>输出:</p>
<pre><code>['Staph. aureus', 'Ps. aeruginosa', 'E. coli ATCC', 'Ser.', 'Asp.', 'Cand. albicans']
['ATCC 6538,', 'ATCC 9027, Ps.', '8739, Ent.', 'marcescens', 'brasiliensis', 'ATCC 10231,']
</code></pre>
<p>看起来很可怕,但希望能给你一些建议。:)</p>