擅长:python、mysql、java
<p>首先,让我们通过将所有空白规范化为一个空格符号来简化文本:</p>
<pre><code>t2 = re.sub(r'[\n\t\ ]+', ' ', t) # t is your original text
</code></pre>
<p>这使得查找车辆识别码(VIN)变得更容易:</p>
^{pr2}$
<p>然后您可以在字符串中获取VIN:的位置,并将VIN_position-50,VIN_position+50传递到.findall方法:</p>
<pre><code>r2 = re.compile('(\$[0-9\,\.]+)')
r2.findall(t2, t2.find('VIN:') - 50, t2.find('VIN:') + 50)
Out[4]: []
</code></pre>
<p>在您的文本中,价格从VIN起超过50个字符,即,您需要扩展此边界(100个工作正常):</p>
<pre><code>r2.findall(t2, t2.find('VIN:') - 100, t2.find('VIN:') + 100)
Out[5]: ['$29,988']
</code></pre>