<p>像这样简单的东西。<br/>
我们只需要用这些<code>(?<! [\da-z] ) .. (?! [\da-z] )</code><br/>来保护边界
它有两个功能:<br/>
-它会阻止引擎在同类(数字或字母)之间进行匹配。<br/>
-确保没有书尾类型。你知道吗</p>
<p>方式1:</p>
<p>查找<code>(?<![\da-z])(?:([a-z]+)(\d+)|(\d+)([a-z]+))(?![\da-z])</code><br/>
替换<code>$1$3 $2$4</code></p>
<p><a href="https://regex101.com/r/k4gNoE/1" rel="nofollow noreferrer">https://regex101.com/r/k4gNoE/1</a></p>
<pre><code> (?<! [\da-z] )
(?:
( [a-z]+ ) # (1)
( \d+ ) # (2)
|
( \d+ ) # (3)
( [a-z]+ ) # (4)
)
(?! [\da-z] )
</code></pre>
<hr/>
<p>方式2:</p>
<p>查找<code>(?<![\da-z])(?:([a-z]+(?=\d)|\d+(?=[a-z]))((?<=\d)[a-z]+|(?<=[a-z])\d+))(?![\da-z])</code>
替换<code>$1 $2</code></p>
<p><a href="https://regex101.com/r/LbWnkg/1" rel="nofollow noreferrer">https://regex101.com/r/LbWnkg/1</a></p>
<pre><code> (?<! [\da-z] )
(?:
( # (1 start)
[a-z]+
(?= \d )
| \d+
(?= [a-z] )
) # (1 end)
( # (2 start)
(?<= \d )
[a-z]+
| (?<= [a-z] )
\d+
) # (2 end)
)
(?! [\da-z] )
</code></pre>