gpt4 book ai didi

包含反斜杠的python正则表达式

转载 作者:行者123 更新时间:2023-12-01 04:51:11 24 4
gpt4 key购买 nike

我想从文件中提取所有 latex 表达式,即 $$ 之间的字符串,而不是 \$ 之间的字符串>\$

考虑以下因素:

import re
with open("abstracts.txt","r",encoding="utf-8") as f:
l = f.read()

with open("latex.txt","w",encoding="utf-8") as f:
for a in re.findall(r"[^\\]\$.*?[^\\]\$",l,re.S):
f.write(a+"\n")

这符合我的需要,但它包含美元符号。但是当我将 (*) 更改为

    for a in re.findall(r"[^\\]\$(.*?)[^\\]\$",l,re.S):  #(*)

它没有达到我想要的效果。例如,字符串 $\overline{\tilde\ch_0}$ 转换为 \overline{\tilde\ch_0

知道我做错了什么吗?

最佳答案

您的正则表达式与美元符号之前的字符匹配。我建议使用负向后查找:

for a in re.findall(r"(?<!\\)\$(.*?)(?<!\\)\$",l,re.S):

关于包含反斜杠的python正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28441274/

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