擅长:python、mysql、java
<p>我建议使用</p>
<pre><code>import re
text = "18-02-202010:44:48PEDMILANO OVEST- BINASCOA1,40"
print( re.sub(r'^\d{2}-\d{2}-\d{5,6}:\d{2}:\d{2}(.*?)\d+(?:,\d+)?$', r'\1', text) )
</code></pre>
<p>它也可以写成</p>
<pre><code>re.sub(r'^\d{2}-\d{2}-\d{5,6}:\d{2}:\d{2}|\d+(?:,\d+)?$', '', text)
</code></pre>
<p>或者,如果您更喜欢匹配和捕获:</p>
<pre><code>m = re.search(r'^\d{2}-\d{2}-\d{5,6}:\d{2}:\d{2}(.*?)\d+(?:,\d+)?$', text)
if m:
print( m.group(1) )
</code></pre>
<p>见<a href="https://ideone.com/Y7rCTw" rel="nofollow noreferrer">online Python demo</a>。使用此解决方案,您的数据可以以任何字符开头,并且将包含任何字符(不包括换行字符,因为您的数据位于单行上)</p>
<p><strong>正则表达式详细信息</strong></p>
<ul>
<li><code>^</code>-字符串的开头</li>
<li><code>\d{2}-\d{2}-\d{5,6}:\d{2}:\d{2}</code>-datetime字符串:两位,<code>-</code>,两位,<code>-</code>,五位或六位,<code>:</code>,两位,<code>:</code>两位</li>
<li><code>(.*?)</code>-第1组:除换行符以外的任何零个或多个字符,尽可能少</li>
<li><code>\d+(?:,\d+)?</code>-一种int/float值模式:1+位后跟可选的<code>,</code>和1+位序列</li>
<li><code>$</code>-字符串的结尾</李>
</ul>
<p>见<a href="https://regex101.com/r/bsW9Bi/1" rel="nofollow noreferrer">regex demo</a></p>