擅长:python、mysql、java
<p>使用正则表达式:</p>
<pre><code>m = re.match("([^,]*_)([+]?[0-9]+)(_.*)", s)
if m:
before = m.group(1)
number = m.group(2)
after = m.group(3)
s = before + new_number(number) + after
</code></pre>
<p>意思是</p>
<ul>
<li><code>[^,]*_</code>=需要多少个字符而不是逗号,后跟下划线</li>
<li><code>[+]?[0-9]+</code>=数字,可以前面加<code>+</code></li>
<li><code>_.*</code>=后面跟着的下划线</li>
</ul>
<p>这是因为regexp匹配在默认情况下是“贪心”的,因此<code>[^,]*</code>将实际使用所有下划线,在最后一个匹配成功之前停止。在</p>
<p>例如,如果您需要使用分隔开的第二个最后一个下划线,则需要将表达式更改为</p>
^{pr2}$
<p>因此,要求在数字之后,逗号前至少有两个下划线。在</p>