擅长:python、mysql、java
<p>您的正则表达式将删除空格以及其他所有内容。我认为要使用regex查找某些内容,最好的方法是使用<code>re</code>库搜索它</p>
<p>我们将首先查找以<code>%</code>:<code>'.*%'</code>结尾的所有字符串。
对于<code>Bank ABC 123% CDE</code>这将返回<code>Bank ABC 123% CDE</code>,其中包含空格和非数字</p>
<p>为了改进这一点,让我们查找最多带有1个逗号或点的数字:<code>\d*[,.]?\d*%</code>,这将返回<code>123%</code>作为您的输入</p>
<p>总而言之,让我们用点代替逗号</p>
<pre><code>import re
str = 'Bank1 2,3%'
arr = [x.replace(',','.') for x in re.findall('\d*[,.]?\d*%',str)]
print(arr)
>>> ['2.3%']
</code></pre>
<p>请注意,答案是所有匹配项的数组</p>
<p>如果你想把号码拿出来,你现在可以做:</p>
<pre><code>if len(arr)>0:
number_without_percent_sign = arr[0][:-1]
print(float(number_without_percent_sign))
>>> 2.3
</code></pre>