[Résolu] Expression régulière : remplacer le caractère point "." par un slash "/"

Discussions à propos du traitement de textes Writer mais également sur l'éditeur HTML.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

MeShell00
Fraîchement OOthentifié
Messages : 5
Inscription : 17 août 2023 08:37

[Résolu] Expression régulière : remplacer le caractère point "." par un slash "/"

Message par MeShell00 »

Bonjour

Dans libreoffice version 6.4.7.2, writer: j'aimerai remplacer le caractère point "." par le caractère slash "/".

j'utilise la ligne suivante dans "édition rechercher & remplacer" pour sélectionner les points à changer.

Code : Tout sélectionner

([A-Za-zèéï]*. [0-9]{1,3})(\.)([0-9]{1,3})|([1-3] [A-Za-zèéï]*. [0-9]{1,3})(\.)([0-9]{1,3})
que dois-je écrire dans "remplacer"?

J'ai essayé la formule suivante:

Code : Tout sélectionner

\1\/\3
je me suis basé sur la commande sed:

Code : Tout sélectionner

echo "Matthieu 5.18 titi. 1 Corinthiens 14.16 coucou."|sed -r 's/([A-Za-zèéï]*. [0-9]{1,3})(\.)([0-9]{1,3})|([1-3] [A-Za-zèéï]*. [0-9]{1,3})(\.)([0-9]{1,3})/\1\/\3/'
voici le résultat
\1\/\3 titi. \1\/\3 coucou

Merci de votre aide

Linux salon 5.4.0-156-generic #173-Ubuntu SMP Tue Jul 11 07:25:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Dernière modification par micmac le 18 août 2023 07:12, modifié 1 fois.
Raison : Balisage
Version: 7.5.5.2 (X86_64) / LibreOffice Community
5.4.0-156-generic #173-Ubuntu x86_64 x86_64 x86_64 GNU/Linux
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12750
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: expressions régulières

Message par Bidouille »

Bonjour et bienvenue,

Titre modifié pour plus de clarté.
Un titre clair et explicite n'est pas pour vous mais pour tous ceux effectuant ensuite des recherches dans ce forum.

Suppression de l'icône Image
Veuillez lire ceci sur cette usage : viewtopic.php?t=3299
MeShell00 a écrit : 17 août 2023 08:55 Dans libreoffice version 6.4.7.2
Cette version est obsolète et non maintenue.
Afin de profiter des dernières améliorations, il est fortement recommandé d'être à jour de la dernière version officielle stable
MeShell00
Fraîchement OOthentifié
Messages : 5
Inscription : 17 août 2023 08:37

Re: Expression régulière : remplacer le caractère point "." par un slash "/"

Message par MeShell00 »

Bonjour Bidouille.

Merci beaucoup, désolé pour la mauvaise icone :oops:

Je vais changer de version.
Version: 7.5.5.2 (X86_64) / LibreOffice Community
5.4.0-156-generic #173-Ubuntu x86_64 x86_64 x86_64 GNU/Linux
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26109
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: Expression régulière : remplacer le caractère point "." par un slash "/"

Message par Dude »

Salut,
MeShell00 a écrit : 17 août 2023 08:55 voici le résultat
\1\/\3 titi. \1\/\3 coucou
C'est le résultat attendu ? Parce que on ne voit pas la logique à respecter.

S'il s'agit juste de remplacer un seul caractère, le dialogue de base suffit :
no_problemo.gif
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
MeShell00
Fraîchement OOthentifié
Messages : 5
Inscription : 17 août 2023 08:37

Re: Expression régulière : remplacer le caractère point "." par un slash "/"

Message par MeShell00 »

Bonjour Dude

Je te remercie pour ta réponse cependant:
le problème est que les points (".") après titi et après coucou sont remplacés par slash "/"
et j'aimerai qu'il n'en soit pas ainsi.
Version: 7.5.5.2 (X86_64) / LibreOffice Community
5.4.0-156-generic #173-Ubuntu x86_64 x86_64 x86_64 GNU/Linux
Jeff
GourOOu
GourOOu
Messages : 9983
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Expression régulière : remplacer le caractère point "." par un slash "/"

Message par Jeff »

Bonjour,

J'ai un peu du mal à comprendre, quelle est la chaîne de caractères à traiter, et quelle est la chaîne à obtenir :?

Éventuellement, jette un coup d'oeil sur ce fil de discussion :
viewtopic.php?t=53128&hilit=Recherch%2A ... A+regul%2A

A +
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.16 / Debian 13 "Trixie" / Xfce
AOO 4.1.15 / Debian 11 "Bullseye" / Cinnamon
MeShell00
Fraîchement OOthentifié
Messages : 5
Inscription : 17 août 2023 08:37

Re: Expression régulière : remplacer le caractère point "." par un slash "/"

Message par MeShell00 »

Bonjour Jeff,

Désolé, je me suis mal fait comprendre.

j'ai un texte de ce genre :
Matthieu 5.18 {Car, je vous le dis en vérité (amen), tant que le ciel et la terre ne passeront point, il ne disparaîtra pas de la loi un seul iota ou un seul trait de lettre, jusqu'à ce que tout soit arrivé.}

je veux remplacer Matthieu 5.18 par Matthieu 5/18

pour sélectionner ce morceau de texte j'utilise l'expression régulière suivante :

Code : Tout sélectionner

([A-Za-zèéï]*. [0-9]{1,3})(\.)([0-9]{1,3})|([1-3] [A-Za-zèéï]*. [0-9]{1,3})(\.)([0-9]{1,3})
ainsi le texte est sélectionné, mais je ne veux pas que tous les point du texte soient remplacés par des des slash seulement celui de la référence.
la question est que dois-je mettre dans la case : remplacer par?
Version: 7.5.5.2 (X86_64) / LibreOffice Community
5.4.0-156-generic #173-Ubuntu x86_64 x86_64 x86_64 GNU/Linux
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 639
Inscription : 09 août 2017 22:15

Re: Expression régulière : remplacer le caractère point "." par un slash "/"

Message par Jurassic Pork »

Hello,
MeShell00 a écrit : 17 août 2023 08:55 Dans libreoffice version 6.4.7.2, writer: j'aimerai remplacer le caractère point "." par le caractère slash "/".
j'utilise la ligne suivante dans "édition rechercher & remplacer" pour sélectionner les points à changer.

Code : Tout sélectionner

([A-Za-zèéï]*. [0-9]{1,3})(\.)([0-9]{1,3})|([1-3] [A-Za-zèéï]*. [0-9]{1,3})(\.)([0-9]{1,3})
je n'ai pas trop compris l'intérêt de la deuxième partie de ton expression régulière (après le ou) et celle-ci peut être simplifiée en utilisant \w pour les caractères (remplace [A-Za-z]) et \d pour les chiffres (remplace [0-9]) et \s pour les espaces)
voici l'expression que je te propose :
([\wà-ü]+\s)(\d{1,3})(\.)(\d{1,3})
on cherche un mot constitué d'un ou plus caractères en prenant en compte les caractères accentués (à-ü) suivi d'un espace puis suivi d'
un nombre entier constitué de 1 à 3 chiffres suivi de
un point suivi d'un
nombre entier constitué de 1 à 3 chiffres
On capture chacune de ces parties dans un groupe (avec des parenthèses)
LO, OO n'utilise pas \ pour désigner les groupes mais $ exemple $1 = premier groupe
Dans la partie remplacer il suffit alors de mettre :
$1$2/$4
on remplace le groupe 3 qui est le . par un /
SearchReplaceRegex.gif
Ami calmant, J.P
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
MeShell00
Fraîchement OOthentifié
Messages : 5
Inscription : 17 août 2023 08:37

Re: Expression régulière : remplacer le caractère point "." par un slash "/"

Message par MeShell00 »

Bonjour Jurassic Pork

Problème résolu. :super: :bravo:

Merci pour cette aide précieuse.

Avec sed sur un fichier texte, je sais faire; mais il n'y a pas de mise en forme.

Avec LibreOffice maintenant je sais un peu plus. Merci.

Si je fais un résumé:

\w pour (remplace [A-Za-z])
\d pour (remplace [0-9])
\s pour les espaces
faire des groupes avec les parenthèses
remplacer le ou les groupes par $ suivi du n° de groupe


Ça fonctionne très bien.

Pour info: la 2ème partie donc après le ou (après le pipe "|") me permet de sélectionner les expressions du type : 1 Corinthiens 14/16
c'est à dire commençant par un chiffre.

Code : Tout sélectionner

([A-Za-zèéï]*. [0-9]{1,3})(\.)([0-9]{1,3})|([1-3] [A-Za-zèéï]*. [0-9]{1,3})(\.)([0-9]{1,3})
Merci encore.

Bonne journée.
Version: 7.5.5.2 (X86_64) / LibreOffice Community
5.4.0-156-generic #173-Ubuntu x86_64 x86_64 x86_64 GNU/Linux