擅长:python、mysql、java
<p>来自<code>help(re.sub)</code>[emphasis mine]:</p>
<blockquote>
<p>sub(pattern, repl, string, count=0, flags=0)</p>
<blockquote>
<p>Return the string obtained by replacing the leftmost
non-overlapping occurrences of the pattern in string by the
replacement repl. <strong>repl can be either a string or a callable;
if a string, backslash escapes in it are processed.</strong> If it is
a callable, it's passed the match object and must return
a replacement string to be used.</p>
</blockquote>
</blockquote>
<p>解决此问题的一种方法是传递<code>lambda</code>:</p>
<pre><code>>>> reg.sub(rpl, my_string )
'I hope this This is a nicely escaped newline \n is replaced with a nicely escaped string'
>>> reg.sub(lambda x: rpl, my_string )
'I hope this This is a nicely escaped newline \\n is replaced with a nicely escaped string'
</code></pre>