擅长:python、mysql、java
<p>您可以使用字符类并匹配可选的空白字符,将替换缩短为<code>(P[nN]o)\s?(\d{4})</code></p>
<p>如果pno和数字之间有空格,可以使用2个捕获组,而不是1个</p>
<p>要匹配可选连字符,可以使用字符类<code>[-\s]*</code>扩展匹配空格字符或连字符</p>
<p>这将为当前示例数据中的零件生成单独的组</p>
<pre><code>^(.*?)(P[nN]o)\s?(\d{4})[-\s]*(.*)$
</code></pre>
<p><a href="https://regex101.com/r/lcAtTa/1" rel="nofollow noreferrer">Regex demo</a></p>