Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Expression rationnelle

rudy, le vendredi 11 janvier 2002 à 15:31:51
recherche urgent des renseignements sur les expressions rationnelles en javascript :

je voudrais comparer des mots entres dans un moteur de recherche et ceux entres dans la base de donnés afin d'améliorer mon moteur .
PB: en entrant le mot "bleu" et "b" j'obtiens le meme resultat.
merci d'avance!!
Répondre à rudy  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bobinours, le vendredi 11 janvier 2002 à 18:09:05
var str = "xxxabbcaxxx";
var regex = /a[bc]*a/;
/* var regex = new RegExp("a[bc]*a"); */
if (regex.test(str) {...}
/* if (str.match(regex)) {...} */

Source : http://www.diku.dk/teaching/2001e/e01.718/Lectures/regex/15.html et http://www.diku.dk/teaching/2001e/e01.718/Lectures/regex/contents.html



-= Bobinours =-
Répondre à Bobinours

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amélie, le lundi 17 mars 2003 à 04:44:04
Bonjour....je commence un cours d'informatique et je suis complètement perdue.......

c'est quoi une expression rationnelle?
(explication, exemples d'expressions rationnelles et exemples d'application d'expression rationnelles)

Quels logiciels utilise les expressions rationnelles?

Comment on fait pour utiliser les expression rationnelles avec Perl?
(instruction utiliser en perl? opérateurs utilisée en perl?)

C'est quoi un métacaractère?? quels sont ceux qui conviennent aux expressions rationnelles?

Merci de bien vouloir m'aider....parce que ca fait déja plusieurs jours que je tente de répondre à ces questions en cherchant sur le net...et je ne trouve rien de clair et précis qui me permettrait de bien comprendre

à bientot!!
Répondre à amélie

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le mardi 18 mars 2003 à 12:21:43
Salut !

En fait ils parlent d'expression régulière (et non rationnelle).

Une expression régulière permet de vérifier si une chaîne de caractères correspond ou non à un format précis.

Un exemple:
Je veux les mots commençant par la lettre 'a' et se terminant par 'e'. L'expression régulière est a.*e
. veut dire "n'importe quel caractère".
* veut dire "répété un certain nombre de fois."

Ainsi:
ae est accepté par l'expression régulière.
arbre est accepté.
arme est accepté.
are est accepté
arret est refusé.
brousse est refusé
art est refusé.
arte est accepté.


Dans les expressions régulières, certains caractères ont des significations précises:
. "n'importe quel caractère."
* "répété 0 fois ou plus."
+ "répété 1 fois ou plus."
{x,y} "répété de x à y fois."
^ "début de ligne"
$ "fin de ligne"
etc.
(voir la doc du module pcre ou perl ou autre pour la signification des autres symboles).

Ces symboles sont appelés 'metacaractères' car ils peuvent représenter un ensemble de caractères différents.

On retrouve les expressions régulière un peu partout: là où il faut vérifier que ce que l'utilisateur a entré est correct, pour rechercher du texte, etc.

La référence est le module PCRE d'Unix que l'on retrouve dans beaucoup de langages (shell, grep, perl...). On peut utiliser les expressions régulières dans pratiquement tous les langages.

Les logiciels utilisent généralement des versions simplifiées (par exemple: la recherche de fichiers sous Windows.)


Avec une expression régulière, on peut faire différentes choses:
- vérifier qu'une chaîne entrée a le bon format.
- recherche toutes les occurences (par exemple recherche toutes les adresses email dans un fichier).
- remplacer toutes les occurences (par exemple, rechercher/remplacer).



Les expressions régulières permettent de faire des contrôles très stricts et efficaces.
Mais elles ne sont pas sans failles.
Inconvénients:
- elles sont difficiles à lire. ça veut dire qu'on peut rapidement faire des erreurs.
- dans certaines expressions, on peut exploser la limite de récursion, et donc planter son programme.
- avant d'utiliser une expression régulière, elle doit être compilée (transformée en machine à états). Cette compilation prend du temps, et ça peut être gênant quand on arrête pas de changer d'expression régulière.
Répondre à sebsauvage

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bobinours, le mardi 18 mars 2003 à 13:34:22
Salut sebsauvage ;-)

"Expressions Rationnelles" existe également. C'est le terme traduit de l'anglais vers le français que l'on trouve dans de nombreux ouvrages.

En ce qui me concerne, je ne l'emploie jamais, lui préférent de loin "Expressions Régulières", beaucoup plus proche de son équivalent anglais ainsi que de "Regex" (son abréviation).

Par contre, j'avais homi les langages natifs et fonctions Unix qui sont précurseurs (il me semble).
-= Bobinours -  =-
Répondre à Bobinours

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le mardi 18 mars 2003 à 14:09:02
ah ok.
Je n'avais pas rencontré ce vocabulaire "expression rationnelles".
Répondre à sebsauvage

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bobinours, le mardi 18 mars 2003 à 14:21:27
Jète un oeil sur la doc officielle PERL :
http://www.enstimac.fr/Perl/DocFr/perlre.html
-= Bobinours =-
Répondre à Bobinours

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
guyom, le lundi 17 mars 2003 à 11:49:04
salut,

j'pense que tu devrais trouver quelques p'tits trucs interessant ici http://www.perl-gratuit.com/traduction/doc_fr.html
et ici http://developpeur.journaldunet.com/tutoriel/cgi/010315cgi_e­xpreg.shtml

(dernier p'tit mot : résultats trouvés en tappant "expressions régulières perl" sur google..........)

a +
Répondre à guyom

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Bobinours, le mardi 18 mars 2003 à 03:04:54
Salut amélie,
Si les liens ci-dessus ne t'aide pas, voici en deux mots ce que sont les expressions rationnelles, plus connues sous le nom d'expressions régulières (Regular Expressions ou RegEx en anglais).

Les expressions régulières sont un outil puissant que fournissent certains langages de programmations (PERL était le plus reconnu).

Les regex sont une sorte de motif (un format) qu'il faut appliquer à une chaine de caractères.

Voici un exemple d'utilisation simple :

my $variable = "01-01-2000";
if ( $variable =~ m/2000/ ) {
print "La date contient la valeur : 2000";
}


L'instruction de correspondance (match) est :
m//;
Elle est utilisée avec l'operateur :
=~
qui correspond a :
LA_VARIABLE_CONCERNEE =~ (correspond-t-elle) m/AU_MOTIF/;

La regex est : 2000
(ce qui se trouve entre les deux slashs de : m//)

Dans une regex, chaque caractère correspond à sa valeur. Ici, "2000" cherche le caractères "2" puis "0" et "0" enfin "0".
Si ces caractères sont présents dans la chaine $variable alors la condition renvoie vrai.


Voici un autre exemple plus complexe et plus intéressant :

my $variable = "01-01-2000";
if ( $variable =~ m/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/ ) {
print "La date : ". $1 ."/". $2 "/". $3 ." est au bon format : jj-mm-aaaa";
}


La regex est ici : ^([0-9]{2})-([0-9]{2})-([0-9]{4})$

Maintenant interviennent le puissants Meta-Caractères.
Certains caractères, contrairement aux autres, ne valent pas leur valeur dans le motif, mais ont une signification particulière en fonction d'où ils sont utilisés.

^ ---> Utilisé un début de regex, il indique que le motif doit se trouver en début de chaine.
$ ---> Utilisé un fin de regex, il indique que le motif doit se trouver en fin de chaine.
\d ---> correspond à un chiffre (digit) on aurait pu l'écrire [0-9] (un chiffre compris entre 0 et 9).
{2} ---> indique le nombre de fois que doit se répéter le caractère (ici 2, on cherche deux chiffres).
() ---> enfin les parenthèses. Elles permettent de mémoriser la valeur trouvée entre elles afin de les utiliser plus tard grace à $1, $2, $3... respectivement à l'ordre d'apparitions des parenthèses.
- ---> Le tiret en dehors de crochets correspond à sa valeur (tiret ou signe moins).

Dans cette regex, on recherche en début de chaine : 2 chiffres (mis en mémoire dans $1), suivi d'un tiret et de 2 autres chiffres (mis également en mémoire dans $2), un tiret, et enfin 4 chiffres (mis en mémoire dans $3) qui finissent la chaine.
(Le format : 01-01-2000 en gros)


Ici, tu trouveras la doc française complète des regex en PERL : http://www.mongueurs.net/perlfr/perlre.html

Et ici, le summum des regex par japhy (en anglais) : http://japhy.perlmonk.org/book/
-= Bobinours -  =-
Répondre à Bobinours

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amélie, le mardi 18 mars 2003 à 21:49:09
merci pour les réponses que vous m'avez apporté...

mais quelque trucs sont encore un peu brouille:

connaissez vous des noms précis de LOGICIEL qui permetent d'exploiter les expressions rationnelles
Répondre à amélie

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Bobinours, le mardi 18 mars 2003 à 22:36:51
Toue les compilateurs et interpréteurs de langages implémentant les REGEX.

- PERL avec l'interpréteur Windows http://www.ActivePerl.com
- Python avec l'interpréteur Windows ActivePython sur http://www.ActiveState.com
- PHP ( http://php.net )
- Java doit avoir des classes.
...
Et encore une tripotée de langages.
-= Bobinours -  =-
Répondre à Bobinours
Télécharger TextWranglerTextWrangler est un éditeur de texte évolué. Il propose de nombreuses fonctionnalités : recherche/remplacement simple ou sur plusieurs fichiers utilisation d'expressions rationnelles (regexp) comparaisons de fichiers presse-papiers... www.commentcamarche.net/telecharger/telecharger-34055075-textwrangler
Parser du BBCode en PHP avec une RegEx (Résolu)Bonjour, j'ai un petit (mais très embêtant...) problème avec une expression rationnelle : mon but est d'afficher le code source contenu dans mes articles dans des paires de balises [code][\/code] (je mets un anti-slash pour le forum). Dans... www.commentcamarche.net/forum/affich-8117907-parser-du-bbcode-en-php-avec-une-regex
PHP - Expressions régulières Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au modèle. Ce système est emprunté au système... www.commentcamarche.net/php/phpreg.php3
[KDE] Les applications KDEIntroduction Le gestionnaire de bureau KDE comporte de nombreux logiciels préinstallés (pour les versions complètes) ou installables facilement grâce à votre gestionnaire de paquetage. Une fois installés, la plupart de ces logiciels se... www.commentcamarche.net/faq/sujet-4789-kde-les-applications-kde
Google - Recherche d'une expression exacteLorsque l’on souhaite faire la recherche d’une expression exacte, il suffit de mettre cette expression entre guillemets. Exemple : "animal domestique" référencera uniquement les sites comportant l’expression "animal domestique". www.commentcamarche.net/faq/sujet-795-google-recherche-d-une-expression-exacte
[RegExp] Récupérer une adresse IPFinalité Mise en œuvre Explications Interprétation du motif Récupérer une adresse IP Finalité Pour récupérer une IP dans un fichier texte, fichiers journaux, pages web, etc. Mise en œuvre L'expression régulière suivante combinée à la... www.commentcamarche.net/faq/sujet-911-regexp-recuperer-une-adresse-ip
[PHP]Expression régulière & condition if (Résolu)Bonjour, J'ai un petit souci pour réaliser mon back-office. J'ai deux pages pour mettre à jour mes dates. La première page contient le tableau avec les champs pré-remplis. Tout fonctionne, mais quand j'ai voulu mettre une expression... www.commentcamarche.net/forum/affich-3211608-php-expression-reguliere-condition-if
[Expression régulière]Chaine de 9 chiffres (Résolu)Bonjour Voila je suis une bille en expression régulière et j'aimerais bien un peu d'aide ;p Je voudrais vérifier qu'une chaine n'est composée que de 9 chiffres ni plus ni moins. Exemple : 123456789 Est que quelqu'un aurait une... www.commentcamarche.net/forum/affich-3172818-expression-reguliere-chaine-de-9-chiffres
Expression régulière avec grep (Résolu)Bonjour, je cherche désespérément l'expression régulière qui me permettrait de trouver des mots, mais en ôtant certains contextes. Je m'explique : grep -c -E "failed|unexpectedly exited" me sort le nombre de fois où j'ai... www.commentcamarche.net/forum/affich-2189615-expression-reguliere-avec-grep
Télécharger Siren Siren est un outil de renommage en masse de fichiers. Il effectue cette tâche à partir d'expressions que vous aurez vous-même composées. Siren utilise plusieurs informations associées à un fichier, comme les noms, les numéros de sélection, la partie... www.commentcamarche.net/telecharger/telecharger-34055612-siren
Télécharger AmayaAmaya est un éditeur Web, développé conjointement par l'INRIA et le W3C, pour éditer et publier très simplement des pages contenant du texte (en HTML ou XHTML), du graphique (en SVG) et des expressions mathématiques (en MathML), le tout avec des... www.commentcamarche.net/telecharger/telecharger-210-amaya
[Brève] Cybermanifestation pour la liberté d'expression sur InternetL'organisation Reporters sans frontières (RSF) et l'Unesco lance le 12 mars la première Journée internationale pour la liberté d'expression sur Internet. RSF appelle les internautes à dénoncer la censure des gouvernements sur la Toile en se rendant... www.commentcamarche.net/actualites/breve-cybermanifestation-pour-la-liberte-d-expression-sur-internet-5406100-actualite.php3
Java Server Pages - Les expressions Les expressions JSP permettent d'insérer simplement des chaînes de caractères générées dynamiquement dans la page HTML. La syntaxe d'une expression JSP est la suivante : L'expression suivante permet par exemple de retourner une... www.commentcamarche.net/jsp/jspexp.php3
Tableur - Les expressions arithmétiques Les expressions arithmétiques sont des expressions simples construites avec des opérateurs arithmétiques et des constantes ou des références à des cellules. On appelle opérandes les valeurs sur lesquelles l'opérateur agit. On distingue deux types... www.commentcamarche.net/tableur/tabarithm.php3
Tableur - Les expressions Les expressions permettent au tableur d'effectuer des calculs simples mettant en jeu des valeurs provenant de plusieurs cellules. On distingue généralement plusieurs types d'expressions : Les expressions arithmétiques Les expressions conditionnelles... www.commentcamarche.net/tableur/tabexpr.php3
Toutes les réponses pour « expression rationnelle »