擅长:python、mysql、java
<p>您可以找到非数字/非空白和数字之间的所有位置,或数字和非数字/非空白之间的所有位置,并在其中插入空格:</p>
<pre><code>(?<=[^0-9\s])(?=[0-9])|(?<=[0-9])(?=[^0-9\s])
</code></pre>
<p>替换为空格。你知道吗</p>
<p>参见<a href="https://regex101.com/r/hd2GOV/1" rel="nofollow noreferrer">regex demo</a>。你知道吗</p>
<p><strong>细节</strong></p>
<ul>
<li><code>(?<=[^0-9\s])</code>-匹配紧跟在字符前面的位置,而不是数字和空格。。。你知道吗</li>
<li><code>(?=[0-9])</code>-后面跟一个数字</li>
<li><code>|</code>-或</li>
<li><code>(?<=[0-9])</code>-匹配紧跟在数字和</li>
<li><code>(?=[^0-9\s])</code>-后跟除数字和空格以外的字符。你知道吗</li>
</ul>
<p>熊猫测试:</p>
<pre><code>>>> from pandas import DataFrame
>>> import pandas as pd
>>> col_list = ['wienerstr256pta 18 graz austria8051 4']
>>> rx = r'(?<=[^0-9\s])(?=[0-9])|(?<=[0-9])(?=[^0-9\s])'
>>> df = pd.DataFrame(col_list, columns=['col'])
>>> df['col'].replace(rx," ", regex=True, inplace=True)
>>> df['col']
0 wienerstr 256 pta 18 graz austria 8051 4
Name: col, dtype: object
</code></pre>