擅长:python、mysql、java
<p>我做了一些假设:</p>
<ul>
<li>供应商名称始终位于产品之前</li>
<li>至少===作为供应商条目之间的分隔符</li>
<li>空行可以忽略</li>
</ul>
<p>工作代码:</p>
<pre><code>str = """
AMAZON
IPHONE: 700
SAMSUNG: 600
=============
WALMART
IPHONE: 699
===========
ALIBABA
SONY: 500
"""
new_entry = True
print(" -")
for line in str.split("\n"):
# assuming first entry is always the vendor name
if not line.strip():
continue
elif new_entry:
vendor = line.strip()
new_entry = False
elif "===" in line:
new_entry = True
else:
product = line.split(":")
print("{} | {} | {}".format(vendor, product[0].strip(), product[1].strip()))
print(" -")
</code></pre>
<p>输出为:</p>
<pre><code> -
AMAZON | IPHONE | 700
-
AMAZON | SAMSUNG | 600
-
WALMART | IPHONE | 699
-
ALIBABA | SONY | 500
-
</code></pre>
<p>替代方法:供应商名称也可以作为文本行找到,但不带冒号</p>