用python中的单词替换特殊字符

2024-05-28 19:26:13 发布

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

对于以下字符串:

s = The \r\n sun shines, that's fine [latex]not\r\nt for \r\n everyone[/latex] and if it rains, \r\nit Will Be better.。你知道吗

如果我想用[latex][/latex]之间的' '替换\n\r,我可以使用:

re.sub("\[latex\][^]]*\[/latex\]", lambda x:x.group(0).replace('\r\n',' '), s)

效果很好。你知道吗

但是,如果输入是:

s = some\r\nthing\r\n[latex]\\[\x08egin{array}{*{20}{l}}\r\n{{\rm{dA}} = {\rm{wdy}}:}\\\r\n{{\rm{dF}} = {\rm{P}}\\;{\rm{dA}} = \rho {\rm{g}}\\left( {{\rm{H}}-{\rm{y}}} \right)\\;\\omega \\;{\rm{dy}}}\r\n\\end{array}\\][/latex]\r\n

我用同样的表达,没有什么可以取代。 知道我做错了什么吗?你知道吗


Tags: andtherm字符串forthatnotarray
1条回答
网友
1楼 · 发布于 2024-05-28 19:26:13

这个问题是由于第二个输入中在[/latex]之前存在]。对于输入和正则表达式,最好使用原始字符串。你知道吗

您可以使用此正则表达式进行搜索:

\[latex\].*?\[/latex\]

RegEx Demo

代码:

>>> s = r"some\r\nthing\r\n[latex]\\[\x08egin{array}{*{20}{l}}\r\n{{\rm{dA}} = {\rm{wdy}}:}\\\r\n{{\rm{dF}} = {\rm{P}}\\;{\rm{dA}} = \rho {\rm{g}}\\left( {{\rm{H}}-{\rm{y}}} \right)\\;\\omega \\;{\rm{dy}}}\r\n\\end{array}\\][/latex]\r\n"
>>> print re.sub(r"\[latex\].*?\[/latex\]", lambda x:x.group(0).replace(r'\r\n', ' '), s)
some\r\nthing\r\n[latex]\\[\x08egin{array}{*{20}{l}} {{\rm{dA}} = {\rm{wdy}}:}\\ {{\rm{dF}} = {\rm{P}}\\;{\rm{dA}} = \rho {\rm{g}}\\left( {{\rm{H}}-{\rm{y}}} \right)\\;\\omega \\;{\rm{dy}}} \\end{array}\\][/latex]\r\n

Code Demo

相关问题 更多 >

    热门问题