gpt4 book ai didi

python - 多行正则表达式替换

转载 作者:太空宇宙 更新时间:2023-11-03 12:42:38 24 4
gpt4 key购买 nike

我想转换这样的文本:

$$
foo
bar
$$

<% tex
foo
bar
%>

$\alpha$<% tex \alpha %> .

对于单行替换,我这样做了:

re.sub(r"\$(.*)\$", r"<% tex \1 %>", text)

...而且效果很好。

现在,我添加了多行标志来捕获多行:

re.sub(r"(?i)\$\$(.*)\$\$", r"<% tex \1 %>", text)

...但它返回:

<% tex  %>
foo
bar
<% tex %>

为什么?我敢肯定这是微不足道的事情,但我无法想象是什么。

最佳答案

我建议使用 re.M(多行)标志,并在捕获中吞噬所有非美元符号的内容。

>>> import re
>>> t = """$$
foo
bar
$$"""
>>> re.sub(r"\$\$([^\$]+)\$\$", r"<% tex \1 %>", t, re.M)
'<% tex \nfoo\nbar\n %>'

关于python - 多行正则表达式替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4102487/

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