Python regexp を使用して、LaTeX ファイルのコメントを削除したいと考えています。LaTeX では、コメントは "%" で始まります。ただし、% 文字がエスケープされている場合 ("\%")、コメントではなく、パーセント記号です。
このタスクは、LaTeX テキストに適用する多くの正規表現の 1 つにすぎません。これらすべての正規表現を辞書のリストに保存します。
私が直面している問題は、コメントのプルーニングに使用する正規表現が機能しないことです (「バックスラッシュではない」文字セットを指定する方法がわからないため)。文字セットのバックスラッシュは終了の ']' をエスケープしており、正規表現は正しくありません。
私のコード:
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
どんな助けでも大歓迎です。ありがとう!
ジル