Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

expressions rationnelles

3 réponses
Avatar
Thomas
bonjour :-)


y a t il un forum dedié aux scripts shell et aux expressions
rationnelles ?



qqn m'a donné l'expression rationnelle
(?s:wanadoo.*country:\s+FR)
avec http://fr.wikipedia.org/wiki/Expression_rationnelle pour comprendre


qq questions :

le "?" au depart, qq ca veut dire ? je ne pense pas que ca s'applique au
caractere "("

le "s:" qui suit, j'aurais tendance à penser que c'est du littéral,
puisque j'ai pas trouvé de signification,
mais le resultat ne concorde pas

j'ai trouvé "|" pour faire un ou (union),
mais j'aurais besoin d'un et (intersection) pour pouvoir faire "contient
wanadoo et country:\s+FR" mais que "wanadoo" puisse se trouver apres
"country:\s+FR"
est ce que ca existe ?
ou je suis obligé de faire
"(?s:wanadoo.*country:\s+FR)|(?s:country:\s+FR.*wanadoo)" ?

--
j'agis contre l'assistanat, je travaille dans une SCOP !

3 réponses

Avatar
Stephane Chazelas
2007-08-13, 13:21(+02), Thomas:
bonjour :-)


y a t il un forum dedié aux scripts shell et aux expressions
rationnelles ?


Il y a presque autant te syntaxes d'expressions rationnelles
qu'il y a d'outils qui les utilisent. unix est un bon newsgroup
pour ca comme beaucoup d'outils Unix utilisent les expressions
rationnelles.

En l'occurrence, ta regexp est une regexp perl, donc tu aurais
pu demander sur fr.comp.lang.perl. Mais maintenant, tu trouves
une syntaxe similaire dans TCL, et il y a pas mal d'outils qui
utilisent les PCRE (bibliotheque d'expression rationnelle basee
sur les regexps de perl).

qqn m'a donné l'expression rationnelle
(?s:wanadoo.*country:s+FR)
avec http://fr.wikipedia.org/wiki/Expression_rationnelle pour comprendre


qq questions :

le "?" au depart, qq ca veut dire ? je ne pense pas que ca s'applique au
caractere "("
[...]


C'est le (? qui est special et permet d'introduire une serie
d'operateurs differents. (?s:<xxx>) active l'attribut "s" pour la
sous-regexp <xxx>. L'attribut <s> en perl fait en sorte que "."
matche les separateurs de lignes.

--
Stéphane

Avatar
Benoit Izac
Bonjour,

le 13/08/2007 à 13:21, Thomas a écrit dans le message
:

y a t il un forum dedié aux scripts shell et aux expressions
rationnelles ?


C'est le bon endroit.

qqn m'a donné l'expression rationnelle
(?s:wanadoo.*country:s+FR)
avec http://fr.wikipedia.org/wiki/Expression_rationnelle pour
comprendre


C'est une expression rationnelle Perl et non pas POSIX. La documentation
s'obtient avec « perldoc perlre » ou en français et en ligne ici
<http://perl.enstimac.fr/DocFr/perlre.html>. Le groupe adapté est
<news:fr.comp.lang.perl>.

qq questions :

le "?" au depart, qq ca veut dire ? je ne pense pas que ca s'applique
au caractere "("


Ça veut dire que l'on ne capture pas (la variable $1 n'est pas modifiée
par ce qui est entre les parenthèses)

le "s:" qui suit, j'aurais tendance à penser que c'est du littéral,
puisque j'ai pas trouvé de signification, mais le resultat ne concorde
pas


Ça fait parti de l'ensemble « ?s: ». Le modificateur « s » permet de
faire reconnaître les retours à la ligne comme des espaces ; ainsi
« wanadoo.*country » peut contenir n'importe quel caractère y compris
un ou plusieurs retours à la ligne.

j'ai trouvé "|" pour faire un ou (union), mais j'aurais besoin d'un et
(intersection) pour pouvoir faire "contient wanadoo et country:s+FR"
mais que "wanadoo" puisse se trouver apres "country:s+FR"
est ce que ca existe ?
ou je suis obligé de faire
"(?s:wanadoo.*country:s+FR)|(?s:country:s+FR.*wanadoo)" ?


Il doit exister d'autre solutions mais c'est à mon avis le plus simple
et le plus lisible.

--
Benoit Izac

Avatar
Thomas
In article ,
Benoit Izac wrote:

Bonjour,

le 13/08/2007 à 13:21, Thomas a écrit dans le message
:

y a t il un forum dedié aux scripts shell et aux expressions
rationnelles ?


C'est le bon endroit.

qqn m'a donné l'expression rationnelle
(?s:wanadoo.*country:s+FR)
avec http://fr.wikipedia.org/wiki/Expression_rationnelle pour
comprendre


C'est une expression rationnelle Perl et non pas POSIX. La documentation
s'obtient avec « perldoc perlre » ou en français et en ligne ici
<http://perl.enstimac.fr/DocFr/perlre.html>. Le groupe adapté est
<news:fr.comp.lang.perl>.


merci bcp :-)
à vous 2 :-)

--
j'agis contre l'assistanat, je travaille dans une SCOP !