擅长:python、mysql、java
<p>你可以试试下面的正则表达式</p>
<pre><code>(?<!\d)\d{5}(?=[^\d/]|$)
</code></pre>
<p><a href="http://regex101.com/r/fG1vD4/3" rel="nofollow">DEMO</a></p>
<p><strong>说明:</strong></p>
<ul>
<li><code>(?<!\d)</code>匹配项前面不会有数字。你知道吗</li>
<li><code>\d{5}</code>正好是5位数字。你知道吗</li>
<li><code>(?=[^\d/]|$)</code>后面必须跟一个非数字或<code>/</code>或行尾锚点。你知道吗</li>
</ul>
<p><strong>代码:</strong></p>
<pre><code>>>> import re
>>> s1 = "dsadasd894665"
>>> s2 = "dsadsa78954,4"
>>> s3 = "dsda78954/sdd"
>>> re.search(r'(?<!\d)\d{5}(?=[^\d/]|$)', s1)
>>> re.search(r'(?<!\d)\d{5}(?=[^\d/]|$)', s2)
<_sre.SRE_Match object at 0x7f0835855370>
>>> re.search(r'(?<!\d)\d{5}(?=[^\d/]|$)', s3)
</code></pre>