擅长:python、mysql、java
<p>可以使用带有可选匹配的正则表达式来检查所需数字前面的负号。你知道吗</p>
<p>另外,如果这是字符串的格式,则不需要使用<code>re.split</code>,只需匹配即可。你知道吗</p>
<p>如果这些数字是字符串中唯一的数字,则可以简单地使用:</p>
<pre><code>In [11]: re.findall(r'-?\d+\.?\d+m?', s)
Out[11]: ['28.0358214', '-82.59970229999999', '4232m']
</code></pre>
<p>如果要使其更加健壮,可以匹配整个格式:</p>
<pre><code>import re
rgx = r'Latitude=(-?\d+\.\d+).*Longitude=(-?\d+\.\d+).*Accuracy=-?(\d+m)'
s = 'Latitude=28.0358214, Longitude=-82.59970229999999, Accuracy=4232m'
lat, long, accuracy = re.findall(rgx, s)[0]
print('Lat/Long: {}, {}\nAccuracy: {}'.format(lat, long, accuracy))
</code></pre>
<p>输出:</p>
<pre><code>Lat/Long: 28.0358214, -82.59970229999999
Accuracy: 4232m
</code></pre>