Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.regexp > #164 > unrolled thread
| Started by | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| First post | 2022-08-14 12:29 +0200 |
| Last post | 2022-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.
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
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2022-08-14 12:29 +0200 |
| Subject | Re: 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]
| From | Brice <truc@bidule.fr.invalid> |
|---|---|
| Date | 2022-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]
| From | Otomatic <otomatic@oto.invalid> |
|---|---|
| Date | 2022-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]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2022-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]
| From | Brice <truc@bidule.fr.invalid> |
|---|---|
| Date | 2022-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]
| From | Jean-Pierre Kuypers <Kuypers@address.invalid> |
|---|---|
| Date | 2022-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]
| From | Dominique <zzz@aol.com> |
|---|---|
| Date | 2022-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]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2022-08-15 08:51 +0200 |
| Subject | Variantes 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]
| From | Dominique <zzz@aol.com> |
|---|---|
| Date | 2022-08-15 09:13 +0200 |
| Subject | Re: 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]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2022-08-15 09:18 +0200 |
| Subject | Re: 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]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2022-08-15 09:19 +0200 |
| Subject | Re: 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]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2022-08-15 09:14 +0200 |
| Subject | Re: 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