擅长:python、mysql、java
<p>由于<code>re.sub</code>本身可以执行搜索,因此不需要单独调用<code>re.search</code>。实际上,在结果匹配中,您将丢失regex中用于调用<code>re.search</code>的捕获组,因此对<code>re.sub</code>的调用中替换字符串中的反向引用将不能引用任何内容。合并到两个调用,它就可以工作了(下面的示例代码假设您只想在<code>KNOWLEDGECENTER/</code>之后添加一个制表符:</p>
<pre><code>for line in fileinput.input(fileToSearch):
result = re.sub('(KNOWLEDGECENTER/)(.*?/' + re.escape(taxonomy) + ')', r'\1\t\2', line)
file.write(result)
</code></pre>