Re Mat et tous,
En fait si j'en crois la doc du module Re de Python 2.7, je vois deux
"options", M et S. M joue pour MULTILINE, s pour "dot matches all".
Multiline, si activé, permet que le circonflexe et le dollar tiennent
compte des caractères de fin de ligne. Si elle n'était pas active,
j'imagine qu'elles seraient inutilisables car elles ne correspondraient
qu'au début ou à la fin du buffer... Selon mes tests, cette option
semble active, et c'est tant mieux.
Pour s, cela semble signifier que si on utilise le point pour "tout
caractère, ce "tout" inclut aussi les caractères de fin de ligne si
l'option est active, et ne les inclut pas si elle n'est pas active.
Ainsi, si on utilise .+, si l'option n'est pas active l'effet devrait se
limiter à la ligne sur laquelle est faite la recherche. Mais il semble
qu'ici cette option soit active aussi, et dans un éditeur de texte, je
ne suis pas sûr que ce soit tant mieux...
Et si tu veux inclure ces options dans une regex, tu les mets entre
parenthèses et préfixées par un point d'interrogation, par exemple (?-s)
désactive l'option "dotall", et le point ne matche pas les fins de
ligne. Si tu veux jouer avec Multiline, pour voir l'effet sur
circonflexe et dollar, tu utiliseras donc (?m) pour que les fins de
lignes soient prises encompte, ou (?-m) sinon.
Du coup je ne sais pas si mes éclaircissements en seront vraiment lol.
Et aussi, espérant que moi-même j'ai tout bien compris...
J.-F.
Le 13/12/2015 20:14, Mathieu Barbe a écrit :
Merci,
il me semblais que j'avais lu un truc sur les expressions régulières,
mais je ne savais plus trop.
Merci.
Concernant la suite de ton message, si je comprend bien la chaine
(?-s) à placer dans la recherche permet de dire que $ est la fin de la
ligne et non la fin du buffer?
Ou plutôt que le metacaractère point ne prend plus en compte les
marqueurs de fin de ligne?
Pouvez-vous m'éclairer sur ce point car je suis confronter à cela dans
mon exemple.
Merki, Math
Mathieu Barbe
Mail: mat.ba...@gmail.com
28 rue Nicolas Chorier
38 000 Grenoble
Le 13/12/2015 14:57, Jean-François Colas a écrit :
Salut,
Il existe un petit bug qui fait que pour remplacer, il faut inverser
l'état de la coche "expression régulière" pour qu'elle fonctionne
comme on le veut. Donc si tu veux utiliser des expressions régulières
lors d'un remplacemeent, il faut décocher. Le bug est connu et tu
avais peut-être déjà noté. Ici j'ai fait un petit essai et ton
expression semble fonctionner mais les conditions des tests ne sont
peut-être pas identiques.
Autre chose, j'en profite pour relancer ma question à propos de
l'option (?s), qui semble active par défaut, ce qui perso ne
m'arrange pas vraiment, donc si je veux travailler sur une ligne
entièr et rien qu'une, je suis souvent obligé d'utiliser (?-s) au
début de mon expression régulière. Est-ce modifiable? Souhaitable?
Sinon, tiens j'ai l'impression que je ne peux plus faire dérouler les
recherches précédentes de ma session... Du coup j'ai un doute sur le
fait que c'ait déjà été possible ou non dans les versions précédentes
que je n'ai pas gardées.
J.-F.
Le 13/12/2015 14:13, Mathieu Barbe a écrit :
Bonjour la liste,
j'essaye de remplacer ou plutôt de supprimer une ligne qui indique
le numéro de page dans un de mes livres au format txt.
Voici mon délimiteur de page :
### page 1.
Quand je recherche l'expression régulière:
^### page [0-9]*\.$
Il me retrouve chaque délimiteur de page.
Mais quand j'utilise la boite de dialogue rechercher/remplacer avec
le bouton remplacer tous, il ne me remplace pas mes délimiteurs.
après un ou deux tests et en utilisant la string "###", cela
fonctionne, mais quand j'utilise la string "^###", cela ne
fonctionne plus. Alors que # est bien le premier caractère de ma ligne.
Avez-vous une idée?
Erreur de manipulation ou Bug.
Je suis en Beta1.
++ Mathieu
Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/
Je vous rappelle que les pièces jointe sont activés leur taille est
limité à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
privé, je vous répondrez en privé.
Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/
Je vous rappelle que les pièces jointe sont activés leur taille est
limité à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
privé, je vous répondrez en privé.
Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/
Je vous rappelle que les pièces jointe sont activés leur taille est
limité à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
privé, je vous répondrez en privé.
Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/
Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je
vous répondrez en privé.