擅长:python、mysql、java
<p>wordcharacter<code>\w</code>也匹配下划线。你知道吗</p>
<p>如果要匹配不带下划线的单词字符,可以使用否定字符类并匹配不带下划线的非空白字符<code>[^\W_]</code></p>
<p>对于第二个组,可以使用两个具有重复模式的捕获组:</p>
<pre><code>^([^\W_]+)_((?:[^\W_]+_)*)[^\W_]+$
</code></pre>
<ul>
<li><code>^</code>字符串开头</li>
<li><code>([^\W_]+)_</code>Match 1+乘以除第1组中的下划线以外的单词字符,Match underline</li>
<li><code>(</code>捕捉组2
<ul>
<li><code>(?:[^\W_]+_)*</code>重复0多次匹配单词char,除了下划线,然后是下划线</li>
</ul></li>
<li><code>)</code>关闭组2</li>
<li><code>[^\W_]+</code>匹配除下划线以外的单词字符的1+倍</li>
<li><code>$</code>字符串结尾</li>
</ul>
<p><a href="https://regex101.com/r/f7jFWG/1" rel="nofollow noreferrer">Regex demo</a></p>