Python regexp를 사용하여 LaTeX 파일의 주석을 제거하고 싶습니다. LaTeX에서 코멘트는 "%"로 시작합니다. 그러나 % 문자가 이스케이프 된 경우 ("\ %") 주석이 아닌 경우 기호 퍼센트입니다.파이썬 정규 표현식 ('백 슬래시가 아님'문자 집합을 지정하는 방법)의 문자 집합에서 백 슬래시를 사용 하시겠습니까?
이 작업은 하나의 내 LaTeX의 텍스트에 적용 많은 정규 표현식 중 하나입니다. 나는이 모든 reg exp를 dicts 목록에 저장합니다.
내가 직면 문제는 (내가 '하지 백 슬래시'문자 집합을 지정하는 방법을 모르기 때문에) 내가 코멘트를 치기에 사용하는 정규 표현식이 작동하지 않습니다. 문자 집합의 백 슬래시가 닫는 ']'을 이스케이프 처리하고 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
. 감사!
질
이나요 '[^ \\]'? 은'\\는'당신이 정규식에 리터럴 백 슬래시를 넣어하려면 백 슬래시 – Bakuriu
를 탈출하기위한 정규식 구문은, 그것을 두 배로해야합니다. 귀하의 후식은 '[^ \\] %. *'이어야합니다. –
Martins Pieters가 답변을드립니다. 실제로, 그러나 영업 이익은 너무 키에 대한 원시 문자열을했다 .. : 나는 피곤해야합니다 ... '왼쪽'에 대한 – user1821466