擅长:python、mysql、java
<p>几个问题:</p>
<ul>
<li><code>.</code>在正则表达式中有特殊的含义。如果你真的想匹配一个点,你需要逃离它。在</li>
<li>你可能希望点是可选的。在</li>
<li>使用<code>\D</code>、<code>\b</code>或{<cd4>}等技术检查匹配前后是否不再有数字。在</li>
<li>通常应该使用原始字符串来编写正则表达式模式,这样反斜杠序列就不会被解释为控制字符。在</li>
<li><code>re.findall</code>找到多个匹配项。如果您知道只有一个匹配项,请使用<code>re.search</code>。在</li>
</ul>
<p>试试这个:</p>
<pre><code>pattern = r'\D(\d{1,2}(?:\.\d+)?)(?!\d)'
</code></pre>
<p>请注意,有些字符串包含下划线或没有十进制分隔符。您还没有真正描述在这些情况下应该发生什么,并且此模式不能处理您示例中的所有情况,但它有望为您提供一个良好的开端。在</p>
<p>您可能还需要考虑为每个输入类型编写不同的正则表达式,而不是尝试编写一个正则表达式来处理所有可能的输入。在</p>