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