擅长:python、mysql、java
<p>您确实可以使用regex模块和重复捕获。主要的兴趣是您可以检查匹配字符串的结构:</p>
<pre><code>import regex
regO = regex.compile(r'''
\w+ \( (?: name\['([^']*)'] (?: ,[ ] | (?=\)) ) )* \)
''', regex.VERBOSE);
regO.sub(lambda m: 'XYZ(' + (', '.join(m.captures(1))) + ')', s)
</code></pre>
<p><em>(请注意,您可以将<code>"name"</code>替换为<code>\w+</code>或任何您想要的东西,而不会出现问题。)</em></p>