擅长:python、mysql、java
<p>尝试编译正则表达式以匹配多行字符串:</p>
<pre><code>myFile = re.sub(re.compile('#.*\n.*', re.MULTILINE),"", myFile, count=0, flags=0)
</code></pre>
<p>假设您从一个名为<code>/tmp/macro.txt</code>的文件中获取字符串,此程序将匹配并删除所有内容:</p>
^{pr2}$
<p>即使是第二行后面的行-正则表达式也需要更新以避免这种情况。
我用于测试的<code>/tmp/macros.txt</code>文件是:</p>
<pre><code>#define somenthing \
void single(double * state, char ch);
aaaaaaaaa
aaaaaaaa
</code></pre>
<p>如果字符串是在本地(在python程序中)定义的,那么在打印字符串时,您自己会说其中没有换行符,因此查找换行符的regex将不匹配。在</p>
<p>在这种情况下,匹配的是一个以<code>#</code>开头的字符串,如下所示:</p>
<pre><code>>>> import re
>>> str="""#define something \
... void single(double * state, char ch);"""
>>> myFile = re.sub('^#.*',"", str, count=0, flags=0)
>>> myFile
''
>>> str
'#define something void single(double * state, char ch);'
>>>
</code></pre>