擅长:python、mysql、java
<p>我只有Python2.7.5,但这对我很有用,使用<code>str.replace</code>而不是{<cd2>}。一旦您开始寻找匹配项并构建它们的替换项,这是一个简单的查找和替换任务:</p>
<pre><code>for i in range(len(idx11)):
s = s.replace(idx1[i], idx11[i])
for i in range(len(idx22)):
s = s.replace(idx2[i], idx22[i])
</code></pre>
<h3>编辑</h3>
<p>我想你在这件事上说得太多了。您可以一次性使用<code>re.sub</code>进行以下更改:</p>
^{pr2}$
<p>{cd5>将取代{cd5}:</p>
<pre><code>s = re.sub('√(\d+(\.\d+)?)', r'sqrt(\1)', s)
</code></pre>
<p>将<code>√0.04*2+√4</code>替换为<code>sqrt(0.04)*2+sqrt(4)</code></p>
<p>这里有些事情是不同的。首先,<code>\d</code>,它匹配一个数字,与<code>[0-9]</code>相同。第二,<code>( )</code>捕获它们内部的任何内容。在替换中,您可以按这些已捕获组的出现顺序来引用它们。在<code>pow</code>示例中,我使用了捕获的第一个和第三个组。在</p>
<p>替换字符串之前的前缀<code>r</code>意味着该字符串将被视为“raw”,因此字符按字面解释。组由<code>\1</code>,<code>\2</code>等访问。但是由于反斜杠<code>\</code>是转义字符,所以每次(<code>\\1</code>,<code>\\2</code>等)都必须转义,而不使用<code>r</code>。在</p>