<p>不使用<code>regex</code>。这是一种使用<code>str.startswith()</code>解决问题的方法:</p>
<pre><code>def check (a=list, b=list):
checked = []
for k in a:
c = False
for j in b:
if j.startswith(k):
c = True
break
checked.append(c)
return all(checked)
# inputs
must_have_list = ['APPLE SSD', 'APPLE HDD']
example_device_list = ['APPLE SSD SM128E', 'APPLE HDD HTS541010A9E662']
example_device_list2 = ['APPLE SSD SD0128F', 'APPLE HDD ST3000DM001']
example_device_list3 = ['APPLE ASD SD0128F', 'APPLE HDD ST3000DM001']
example_device_list4 = ['APPLE SSD SD0128F', 'APPLE ADD ST3000DM001']
example_device_list5 = ['APPLE HDD HTS541010A9E662', 'APPLE HDD HTS541010A9E662', 'APPLE SSD SM128E']
# Some tests with this lists
check_list = check(must_have_list, example_device_list)
check_list2 = check(must_have_list, example_device_list2)
check_list3 = check(must_have_list, example_device_list3)
check_list4 = check(must_have_list, example_device_list4)
check_list5 = check(must_have_list, example_device_list5)
# Outputs
print "All items of %s exists at least once in %s: %r" % ("must_have_list", "example_device_list", check_list)
print "All items of %s exists at least once in %s: %r" % ("must_have_list", "example_device_list2", check_list2)
print "All items of %s exists at least once in %s: %r" % ("must_have_list", "example_device_list3", check_list3)
print "All items of %s exists at least once in %s: %r" % ("must_have_list", "example_device_list4", check_list4)
print "All items of %s exists at least once in %s: %r" % ("must_have_list", "example_device_list5", check_list5)
</code></pre>
<p>输出:</p>
<pre><code>All items of must_have_list exists at least once in example_device_list: True
All items of must_have_list exists at least once in example_device_list2: True
All items of must_have_list exists at least once in example_device_list3: False
All items of must_have_list exists at least once in example_device_list4: False
All items of must_have_list exists at least once in example_device_list5: True
</code></pre>