我想使用python正则表达式来去除LaTeX文件中的注释。在LaTeX中,注释以“%”开头。但是如果百分号字符被转义(“\%”),那么它不是注释,而是“百分比”符号。
这个任务只是我在LaTeX文本上应用的许多regexp之一。我将所有这些正则表达式存储在一个字典列表中。
我面临的问题是,我用于修剪注释的正则表达式不起作用(因为我不知道如何指定“非反斜杠”字符集)。字符集中的反斜杠会转义闭合的“]”,从而导致正则表达式无效。
我的代码:
任何帮助都将不胜感激。谢谢! Gilles
这个任务只是我在LaTeX文本上应用的许多regexp之一。我将所有这些正则表达式存储在一个字典列表中。
我面临的问题是,我用于修剪注释的正则表达式不起作用(因为我不知道如何指定“非反斜杠”字符集)。字符集中的反斜杠会转义闭合的“]”,从而导致正则表达式无效。
我的代码:
regexps=[]
regexps.append({r'left':'%.*', 'right':r''}) # this strips all the comments, but messes up with the percent characters (\%)
regexps.append({r'left':'[^\]%.*', 'right':r''}) # this is incorrect (escapes the closing "]" )
return applyRegexps(latexText, regexps)
def applyRegexps(text, listRegExp):
""" Applies successively many regexps to a text"""
if testMode:
print str(listRegExp)
# apply all the regexps in the list
for element in listRegExp:
left = element['left']
right = element['right']
r=re.compile(left)
text=r.sub(right,text)
return text
任何帮助都将不胜感激。谢谢! Gilles
r'[^\\]'
了吗?\\
应该是正则表达式中转义反斜杠的语法。 - Bakuriu