gpt4 book ai didi

python - python 正则表达式字符集中的反斜杠(如何指定 'not a backslash' 字符集)?

转载 作者:太空狗 更新时间:2023-10-30 01:02:48 25 4
gpt4 key购买 nike

我想使用 python 正则表达式删除 LaTeX 文件中的注释。在 LaTeX 中,注释以“%”开头。但是,如果 % 字符被转义(“\%”),则它不是注释,而是符号百分比。

此任务只是我在 LaTeX 文本上应用的众多正则表达式之一。我将所有这些 reg exp 存储在一个字典列表中。

我面临的问题是我用于修剪注释的正则表达式不起作用(因为我不知道如何指定字符集“不是反斜杠”)。字符集中的反斜杠转义了结束 ']' 并且正则表达式不正确。

我的代码:

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

任何帮助将不胜感激。谢谢!

吉尔斯

最佳答案

只需将反斜杠加倍,但一定要使用原始字符串文字以避免再次将它们加倍:

regexps.append({'left':r'[^\\]%.*', 'right':r''})

关于python - python 正则表达式字符集中的反斜杠(如何指定 'not a backslash' 字符集)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13365179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com