Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.regexp > #164 > unrolled thread

Re: Aide Utomator

Started byOlivier Miakinen <om+news@miakinen.net>
First post2022-08-14 12:29 +0200
Last post2022-08-15 09:14 +0200
Articles 12 — 5 participants

Back to article view | Back to fr.comp.lang.regexp

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Aide Utomator Olivier Miakinen <om+news@miakinen.net> - 2022-08-14 12:29 +0200
    Re: Aide Utomator Brice <truc@bidule.fr.invalid> - 2022-08-14 14:13 +0000
    Re: Aide Utomator Otomatic <otomatic@oto.invalid> - 2022-08-14 17:53 +0200
      Re: Aide Utomator Olivier Miakinen <om+news@miakinen.net> - 2022-08-14 18:00 +0200
        Re: Aide Utomator Brice <truc@bidule.fr.invalid> - 2022-08-14 19:06 +0000
          Re: Aide Utomator Jean-Pierre Kuypers <Kuypers@address.invalid> - 2022-08-15 10:31 +0200
    Re: Aide Utomator Dominique <zzz@aol.com> - 2022-08-15 07:03 +0200
      Variantes chiffres/répétitions (was: Aide Utomator) Olivier Miakinen <om+news@miakinen.net> - 2022-08-15 08:51 +0200
        Re: Variantes chiffres/répétitions (was: Aide Utomator) Dominique <zzz@aol.com> - 2022-08-15 09:13 +0200
          Re: Variantes chiffres/répétitions Olivier Miakinen <om+news@miakinen.net> - 2022-08-15 09:18 +0200
          Re: Variantes chiffres/répétitions Olivier Miakinen <om+news@miakinen.net> - 2022-08-15 09:19 +0200
        Re: Variantes chiffres/répétitions Olivier Miakinen <om+news@miakinen.net> - 2022-08-15 09:14 +0200

#164 — Re: Aide Utomator

FromOlivier Miakinen <om+news@miakinen.net>
Date2022-08-14 12:29 +0200
SubjectRe: Aide Utomator
Message-ID<tdaipl$1t5g$1@cabale.usenet-fr.net>
[diapublication avec suivi vers fr.comp.lang.regexp]

Bonjour,

Le 14/08/2022 à 12:04, Brice a écrit :
> Le 13 août 2022 à 17:15, Jean-Pierre Kuypers a écrit :
> 
>> [remplacer « (.*\d*.*) n°(\d*) » par « $2 $1 »]
>>
> Extra, je viens de tester et c'est merveiiillleeeuux,
> Pourrais-je avoir des explications sur les .*\d et $1, $2 ?

Voici les explications détaillées sur ces expressions rationnelles
(regexp).

. = n'importe quel caractère
.* = n'importe quel caractère, n'importe quel nombre de fois
\d = un chiffre
\d* = n'importe quel nombre de chiffres
(...) = capture de la sous-chaîne
$1 = ce qu'il y avait dans le premier (...)
$2 = ce qu'il y avait dans le deuxième (...)


Reprenons l'exemple de Jean-Pierre :
nom prenoms 5678 ville n°1234.jpg

Je vais mettre en dessous de l'exemple ce qui est capturé par quoi :
nom prenoms 5678 ville n°1234.jpg
(  .*       \d*  .*  ) n°(\d*).jpg

Le $2 est donc "1234" tandis que le $1 est "nom prenoms 5678 ville",
d'où le résultat, sachant que le .jpg n'est pas traité par la regexp
et reste donc inchangé :
1234 nom prenoms 5678 ville.jpg

[Attention, j'ai positionné le suivi vers le groupe adapté aux
discussions sur les regexp, à savoir fr.comp.lang.regexp]


-- 
Olivier Miakinen

[toc] | [next] | [standalone]


#165

FromBrice <truc@bidule.fr.invalid>
Date2022-08-14 14:13 +0000
Message-ID<tdavub$35q7o$1@dont-email.me>
In reply to#164
Le 14 août 2022 à 12:29, Olivier Miakinen a raconté :


> [diapublication avec suivi vers fr.comp.lang.regexp]
>
> Bonjour,
>
> Le 14/08/2022 à 12:04, Brice a écrit :
>> Le 13 août 2022 à 17:15, Jean-Pierre Kuypers a écrit :
>> 
>>> [remplacer « (.*\d*.*) n°(\d*) » par « $2 $1 »]
>>>
>> Extra, je viens de tester et c'est merveiiillleeeuux,
>> Pourrais-je avoir des explications sur les .*\d et $1, $2 ?
>
> Voici les explications détaillées sur ces expressions rationnelles
> (regexp).
>
> . = n'importe quel caractère
> .* = n'importe quel caractère, n'importe quel nombre de fois
> \d = un chiffre
> \d* = n'importe quel nombre de chiffres
> (...) = capture de la sous-chaîne
> $1 = ce qu'il y avait dans le premier (...)
> $2 = ce qu'il y avait dans le deuxième (...)
>
>
> Reprenons l'exemple de Jean-Pierre :
> nom prenoms 5678 ville n°1234.jpg
>
> Je vais mettre en dessous de l'exemple ce qui est capturé par quoi :
> nom prenoms 5678 ville n°1234.jpg
> (  .*       \d*  .*  ) n°(\d*).jpg
>
> Le $2 est donc "1234" tandis que le $1 est "nom prenoms 5678 ville",
> d'où le résultat, sachant que le .jpg n'est pas traité par la regexp
> et reste donc inchangé :
> 1234 nom prenoms 5678 ville.jpg
>
> [Attention, j'ai positionné le suivi vers le groupe adapté aux
> discussions sur les regexp, à savoir fr.comp.lang.regexp]
>
je te remercie, avec un chouia de réflexion je vais savoir comment m'y
prendre.

Cordialement,

-- 
B. Graignic
enlever-bgraig@wanadoo.fr

[toc] | [prev] | [next] | [standalone]


#167

FromOtomatic <otomatic@oto.invalid>
Date2022-08-14 17:53 +0200
Message-ID<62f91a6f$0$22252$426a74cc@news.free.fr>
In reply to#164
Olivier Miakinen <om+news@miakinen.net> écrivait :

> . = n'importe quel caractère
> .* = n'importe quel caractère, n'importe quel nombre de fois
Puis-je me permettre quelques petites précisions ?

. Remplace n'importe quel caractère, hormis le caractère de nouvelle
ligne (par défaut)
* n'importe quel nombre de fois. N'importe quel nombre incluant 0 fois.

Documentation Regexp PCRE pour PHP :
https://www.php.net/manual/fr/reference.pcre.pattern.syntax.php

[toc] | [prev] | [next] | [standalone]


#168

FromOlivier Miakinen <om+news@miakinen.net>
Date2022-08-14 18:00 +0200
Message-ID<tdb67h$2394$1@cabale.usenet-fr.net>
In reply to#167
Le 14/08/2022 à 17:53, Otomatic a écrit :
> 
>> . = n'importe quel caractère
>> .* = n'importe quel caractère, n'importe quel nombre de fois
> Puis-je me permettre quelques petites précisions ?
> 
> . Remplace n'importe quel caractère, hormis le caractère de nouvelle
> ligne (par défaut)
> * n'importe quel nombre de fois. N'importe quel nombre incluant 0 fois.

[OUI]

Pour une première réponse à Brice je n'ai pas voulu trop rentrer dans
les détails, d'autant qu'il s'agit ici de noms de fichiers dont on
peut supposer qu'ils ne contiennent pas de caractère de nouvelle ligne.

> Documentation Regexp PCRE pour PHP :
> https://www.php.net/manual/fr/reference.pcre.pattern.syntax.php

Merci. Cela dit, je ne sais pas quel type de regexp est utilisé par le
logiciel que Jean-Pierre recommandait à Brice.


-- 
Olivier Miakinen

[toc] | [prev] | [next] | [standalone]


#169

FromBrice <truc@bidule.fr.invalid>
Date2022-08-14 19:06 +0000
Message-ID<tdbh38$3878c$1@dont-email.me>
In reply to#168
Le 14 août 2022 à 18:00, Olivier Miakinen a écrit :


> Le 14/08/2022 à 17:53, Otomatic a écrit :
>> 
>>> . = n'importe quel caractère
>>> .* = n'importe quel caractère, n'importe quel nombre de fois

>>> Documentation Regexp PCRE pour PHP :
>>> https://www.php.net/manual/fr/reference.pcre.pattern.syntax.php

je suis allé voir, je n'y ai rien compris, trop haut pour mon cerveau.

> Merci. Cela dit, je ne sais pas quel type de regexp est utilisé par le
> logiciel que Jean-Pierre recommandait à Brice.

c'est moi qui recommandait à Claudie ce logiciel que j'utilise depuis
des lustres :-))

Cordialement,

-- 
B. Graignic
enlever-bgraig@wanadoo.fr

[toc] | [prev] | [next] | [standalone]


#176

FromJean-Pierre Kuypers <Kuypers@address.invalid>
Date2022-08-15 10:31 +0200
Message-ID<150820221031265615%Kuypers@address.invalid>
In reply to#169
In article (Dans l'article) <tdbh38$3878c$1@dont-email.me>, Brice
<truc@bidule.fr.invalid> wrote (écrivait) :

> Le 14 août 2022 à 18:00, Olivier Miakinen a écrit :
> > [...] le logiciel que Jean-Pierre recommandait à Brice.
> 
> c'est moi qui recommandait à Claudie ce logiciel que j'utilise depuis
> des lustres :-))

Et je te remercie de m'avoir permis de le découvrir.

-- 
Jean-Pierre Kuypers

[toc] | [prev] | [next] | [standalone]


#170

FromDominique <zzz@aol.com>
Date2022-08-15 07:03 +0200
Message-ID<tdck2h$1ucj$1@gioia.aioe.org>
In reply to#164
Le 14/08/2022 à 12:29, Olivier Miakinen a écrit :

> Voici les explications détaillées sur ces expressions rationnelles
> (regexp).
> 
> . = n'importe quel caractère
> .* = n'importe quel caractère, n'importe quel nombre de fois
> \d = un chiffre
> \d* = n'importe quel nombre de chiffres

Bonjour,

J'ai toujours recherché des chiffres avec [0-9]{1,}( comme dans LibreOffice)

Voici un exemple en Pythom avec la librairie re :

modele1='[0-9]{1,3}[:][0-9]{2}[:][0-9]{2}'
modele2='[0-9]{1,3}[:][0-9]{2}[.][0-9]{1,}'

Là, je vérifie la bonne saisie d'un angle ou d'une heure en ddd:mm:ss ou 
ddd:mm.mmmmm

Ça fonctionne très bien, mais est-ce correct ?

Merci et bonne journée à tous,

Dominique

[toc] | [prev] | [next] | [standalone]


#171 — Variantes chiffres/répétitions (was: Aide Utomator)

FromOlivier Miakinen <om+news@miakinen.net>
Date2022-08-15 08:51 +0200
SubjectVariantes chiffres/répétitions (was: Aide Utomator)
Message-ID<tdcqe4$2e9s$1@cabale.usenet-fr.net>
In reply to#170
Bonjour,

Le 15/08/2022 à 07:03, Dominique a écrit :
> 
> J'ai toujours recherché des chiffres avec [0-9]{1,}( comme dans LibreOffice)
> 
> Voici un exemple en Pythom avec la librairie re :
> 
> modele1='[0-9]{1,3}[:][0-9]{2}[:][0-9]{2}'
> modele2='[0-9]{1,3}[:][0-9]{2}[.][0-9]{1,}'
> 
> Là, je vérifie la bonne saisie d'un angle ou d'une heure en ddd:mm:ss ou 
> ddd:mm.mmmmm
> 
> Ça fonctionne très bien, mais est-ce correct ?

Oui, en tout cas avec les regexp de type perl qui sont les plus avancées
on a déjà les équivalences suivantes :
 {1,}  == +
 {0,}  == *

C'est le cas en Python : <https://docs.python.org/3/library/re.html>

Mais là où tu as absolument raison, c'est que dans un programme qui
pourrait être sensible et éventuellement sujet à une attaque par un
pirate, il est mille fois préférable d'écrire [0-9] plutôt que \d :

<https://docs.python.org/3/library/re.html>
§
 \d

 For Unicode (str) patterns:

 Matches any Unicode decimal digit (that is, any character in Unicode
 character category [Nd]). This includes [0-9], and also many other
 digit characters. If the ASCII flag is used only [0-9] is matched.
§


-- 
Olivier Miakinen

[toc] | [prev] | [next] | [standalone]


#172 — Re: Variantes chiffres/répétitions (was: Aide Utomator)

FromDominique <zzz@aol.com>
Date2022-08-15 09:13 +0200
SubjectRe: Variantes chiffres/répétitions (was: Aide Utomator)
Message-ID<tdcrm0$36k$1@gioia.aioe.org>
In reply to#171
Le 15/08/2022 à 08:51, Olivier Miakinen a écrit :
> Bonjour,
> 
> Le 15/08/2022 à 07:03, Dominique a écrit :
>>
>> J'ai toujours recherché des chiffres avec [0-9]{1,}( comme dans LibreOffice)
>>
>> Voici un exemple en Pythom avec la librairie re :
>>
>> modele1='[0-9]{1,3}[:][0-9]{2}[:][0-9]{2}'
>> modele2='[0-9]{1,3}[:][0-9]{2}[.][0-9]{1,}'
>>
>> Là, je vérifie la bonne saisie d'un angle ou d'une heure en ddd:mm:ss ou
>> ddd:mm.mmmmm
>>
>> Ça fonctionne très bien, mais est-ce correct ?
> 
> Oui, en tout cas avec les regexp de type perl qui sont les plus avancées
> on a déjà les équivalences suivantes :
>   {1,}  == +
>   {0,}  == *

Je ne comprends pas bien ces deux lignes. Pour moi {1,} veut dire 1 ou 
plus et {0,} veut dire rien ou plus. Je dois me tromper.

> 
> C'est le cas en Python : <https://docs.python.org/3/library/re.html>
> 
> Mais là où tu as absolument raison, c'est que dans un programme qui
> pourrait être sensible et éventuellement sujet à une attaque par un
> pirate, il est mille fois préférable d'écrire [0-9] plutôt que \d :
> 
> <https://docs.python.org/3/library/re.html>
> §
>   \d
> 
>   For Unicode (str) patterns:
> 
>   Matches any Unicode decimal digit (that is, any character in Unicode
>   character category [Nd]). This includes [0-9], and also many other
>   digit characters. If the ASCII flag is used only [0-9] is matched.
> §
> 
> 

Un grand merci pour tes précisions.

[toc] | [prev] | [next] | [standalone]


#174 — Re: Variantes chiffres/répétitions

FromOlivier Miakinen <om+news@miakinen.net>
Date2022-08-15 09:18 +0200
SubjectRe: Variantes chiffres/répétitions
Message-ID<tdcs0j$2el4$1@cabale.usenet-fr.net>
In reply to#172
Le 15/08/2022 à 09:13, Dominique m'a répondu :
>> 
>> Oui, en tout cas avec les regexp de type perl qui sont les plus avancées
>> on a déjà les équivalences suivantes :
>>   {1,}  == +
>>   {0,}  == *
> 
> Je ne comprends pas bien ces deux lignes. Pour moi {1,} veut dire 1 ou 
> plus

Oui. Mais + vaut aussi dire 1 ou plus.

> et {0,} veut dire rien ou plus.

Oui. Mais * veut aussi dire rien ou plus.

> Je dois me tromper.

Donc non, tu ne te trompais pas. J'aurais pu ajouter à la liste {0,1}
qui peut aussi s'écrire avec un simple point d'interrogation.

 {1,}  == +
 {0,}  == *
 {0,1} == ?

-- 
Olivier Miakinen

[toc] | [prev] | [next] | [standalone]


#175 — Re: Variantes chiffres/répétitions

FromOlivier Miakinen <om+news@miakinen.net>
Date2022-08-15 09:19 +0200
SubjectRe: Variantes chiffres/répétitions
Message-ID<tdcs25$2el4$2@cabale.usenet-fr.net>
In reply to#172
[Supersedes <tdcs0j$2el4$1@cabale.usenet-fr.net>]

Le 15/08/2022 à 09:13, Dominique m'a répondu :
>> 
>> Oui, en tout cas avec les regexp de type perl qui sont les plus avancées
>> on a déjà les équivalences suivantes :
>>   {1,}  == +
>>   {0,}  == *
> 
> Je ne comprends pas bien ces deux lignes. Pour moi {1,} veut dire 1 ou 
> plus

Oui. Mais + veut aussi dire 1 ou plus.

> et {0,} veut dire rien ou plus.

Oui. Mais * veut aussi dire rien ou plus.

> Je dois me tromper.

Donc non, tu ne te trompais pas. J'aurais pu ajouter à la liste {0,1}
qui peut aussi s'écrire avec un simple point d'interrogation.

 {1,}  == +
 {0,}  == *
 {0,1} == ?

-- 
Olivier Miakinen

[toc] | [prev] | [next] | [standalone]


#173 — Re: Variantes chiffres/répétitions

FromOlivier Miakinen <om+news@miakinen.net>
Date2022-08-15 09:14 +0200
SubjectRe: Variantes chiffres/répétitions
Message-ID<tdcrp6$2ejs$1@cabale.usenet-fr.net>
In reply to#171
Le 15/08/2022 à 08:51, je répondais à Dominique :
>> 
>> modele1='[0-9]{1,3}[:][0-9]{2}[:][0-9]{2}'
>> modele2='[0-9]{1,3}[:][0-9]{2}[.][0-9]{1,}'
>> 
>> Là, je vérifie la bonne saisie d'un angle ou d'une heure en ddd:mm:ss ou 
>> ddd:mm.mmmmm
> 
> [...] là où tu as absolument raison, c'est que dans un programme qui
> pourrait être sensible et éventuellement sujet à une attaque par un
> pirate, il est mille fois préférable d'écrire [0-9] plutôt que \d

Par ailleurs, j'aime bien l'idée de protéger le . par [.] plutôt que par
\. et aussi de faire de même avec [:] même si : suffisait.

Ce n'est pas pour une question d'efficacité mais de lisibilité, d'autant
plus que cela fait une jolie symétrie entre les deux formats (celui avec
[:] et celui avec [.]).

Pour la même raison de symétrie entre les deux je comprends parfaitement
l'utilisation de {1,} au lieu de +, faisant le pendant à {2}.


-- 
Olivier Miakinen

[toc] | [prev] | [standalone]


Back to top | Article view | fr.comp.lang.regexp


csiph-web