擅长:python、mysql、java
<p>这是一种使用Regex的方法</p>
<p><strong>例如:</strong></p>
<pre><code>import re
lst = [ 'CAPACITOR\n C500 1u PN"1";\n C501 1u PN"2";\n\n RESISTOR\n R100 10 PN"10";\n R101 10 PN"11";\n ' , '\n CAPACITOR\n C500 1u PN"1";\n C507 1u PN"2";\n \n CONNECTOR\n TP100 NT; \n TP101 NT;']
result = []
for i in lst:
for j in i.splitlines():
if j.strip():
category = re.match(r"\s*(\b[A-Z]+\b)", j) #Check if line has category > All Capital letters
if category:
result.append([category.group(1)])
else:
component = re.match(r"\s+(\b[A-Z0-9]+\b)", j) #Check if line has component > Capital letter and int.
if component:
result[-1].append(component.group(1))
for i in result:
category = i[0]
for component in i[1:]:
print(component, category)
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>C500 CAPACITOR
C501 CAPACITOR
R100 RESISTOR
R101 RESISTOR
C500 CAPACITOR
C507 CAPACITOR
TP100 CONNECTOR
TP101 CONNECTOR
</code></pre>