python正则表达式,用于匹配两个字符之间的文本,同时忽略反斜杠字符

2024-04-18 18:28:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python来获取两个美元符号($)之间的文本,但是美元符号应该而不是以反斜杠(即\$)开头(这是用于LaTeX渲染程序的)。所以如果给你这个

$\$x + \$y = 5$ and $3$ 

这就是应该输出的内容

^{pr2}$

这是我目前为止的代码:

def parse_latex(text):
    return re.findall(r'(^|[^\\])\$.*?[^\\]\$', text)
print(parse_latex(r'$\$x + \$y = 5$ and $3$'))

但我得到的是:

['', ' ']

我不知道怎么从这里开始。在


Tags: and代码text文本程序re内容return
1条回答
网友
1楼 · 发布于 2024-04-18 18:28:49

您可以使用此基于lookaround的正则表达式排除转义字符:

>>> text = r'$\$x + \$y = 5$ and $3$'
>>> re.findall(r'(?<=\$)([^$\\]*(?:\\.[^$\\]*)*)(?=\$)', text)
['\\$x + \\$y = 5', ' and ', '3']

RegEx Demo

Code Demo

正则表达式拆分:

^{pr2}$

相关问题 更多 >