1
我想变换文字,如:多行正则表达式替换
$$
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 %>
为什么?我确信这是件小事,但我无法想象出什么。
由于[^ \ $]包含换行符,此解决方案可以工作 - 甚至不需要多行标志。 – twneale 2010-11-05 00:23:51
这一个工作:-) – leoluk 2010-11-05 01:02:03
多行标志甚至位于错误的位置,因为第三个参数是“count”。如果有的话你应该做'flag = re.M'。 – cronos 2016-02-26 10:55:32