1
Je veux transformer un texte comme:multiligne Regex remplacer
$$
foo
bar
$$
à
<% tex
foo
bar
%>
et $\alpha$
à <% tex \alpha %>
.
Pour la seule ligne remplacer, je l'ai fait:
re.sub(r"\$(.*)\$", r"<% tex \1 %>", text)
... et il fonctionne très bien.
Maintenant, j'ai ajouté le drapeau multiligne pour attraper le multiligne un:
re.sub(r"(?i)\$\$(.*)\$\$", r"<% tex \1 %>", text)
... mais il retourne:
<% tex %>
foo
bar
<% tex %>
Pourquoi? Je suis sûr que c'est quelque chose de trivial, mais je ne peux pas imaginer quoi.
Cette solution fonctionne - et n'a même pas besoin du drapeau multiligne, puisque [^ \ $] inclut des sauts de ligne. – twneale
celui-ci fonctionne :-) – leoluk
Le drapeau multiligne est même à la mauvaise position, puisque le troisième argument est 'count'. Si du tout vous devriez faire 'flag = re.M'. – cronos