我尝试了各种正则表达式,包括提到的 @Python 3 正则表达式来查找多行注释以匹配下面给出的输入文件,完整的代码也在下面。以下是正则表达式正在使用 currenlty 匹配输入文件@http://pastie。 org/5653293
pattern = re.compile(r'/\*.*?'+ needle + '.*?\*/', re.DOTALL)
有人可以就正则表达式不匹配的原因提供输入吗?
import os
import sys
import re
import fnmatch
def find_and_remove(haystack, needle):
    re.escape(needle)
    pattern = re.compile(r'/\*.*?'+ needle + '.*?\*/', re.DOTALL)
    return re.sub(pattern, "", haystack)
for path,dirs,files in os.walk(sys.argv[1]):
    for fname in files:
        for pat in ['*.cpp','*.c','*.h','*.txt']:
            if fnmatch.fnmatch(fname,pat):
                fullname = os.path.join(path,fname)
                # put all the text into f and read and replace...
                f = open(fullname).read()
                result = find_and_remove(f, r"Copyright (c) 2012, The Linux Foundation. All rights reserved")