擅长:python、mysql、java
<p>从你的例子看来,你可能有美元|欧元|挪威克朗之前或之后,你想提取的数字金额。此外,同一行中可能有多个模式。你知道吗</p>
<p>因此,您需要使用以下代码检索每行中所有匹配的数字模式(符合您的条件):</p>
<pre><code>match = re.findall('(?:XX|XYZ) .*?(?:USD|EUR|NOK)?(\d+)(?:USD|EUR|NOK)?', line)
</code></pre>
<p>例如</p>
<pre><code># line = 'Vessel Arion, Hestia, Delia, Nestor, Thebe, Thesus and Zeus has...
# XX 200000 USD the rest of the entire fleet has XX USD 500000 USD'
match = re.findall('(?:XX|XYZ) .*?(?:USD|EUR|NOK)?(\d+)(?:USD|EUR|NOK)?', line)
# match: ['200000', '500000']
</code></pre>
<p>返回值<code>match</code>是一个包含所有已识别数字模式的列表。你知道吗</p>