Discussion:Expression régulière

Une page de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Autres discussions [liste]
  • Suppression -
  • Neutralité -
  • Droit d'auteur -
  • Article de qualité -
  • Bon article -
  • Lumière sur -
  • À faire -
  • Archives

PRCE et Python[modifier le code]

J'ai un doute sur l'utilisation de PRCE dans python (comment expliquer dans ce cas la différence entre la manière dont les deux langages font des ER). En fait je n'ai trouvé de référence la dessus.

Début de la discussion[modifier le code]

Note sur la traduction originale:

  • D'accord avec les traductions suivantes ?
    • "ensembles réguliers" for "regular set"
    • "théorie des langages formels" pour "formal language theory"
    • "étoile de Kleene" pour "Kleene star"
    • problème de degré d'étoile pour star height problem. Là, j'ai traduit un peu au hasard !
    • "opérateur de choix" pour "choice operator": pq pas "opérateur alternatif" ?
  • Comment traduire "match" en français ? Le paragraphe pour les expr.reg. sous Unix utilise beaucoup "match", j'ai dû contourner la difficulté, est-ce que çà donne bien ?
  • J'ai modifié certain passages:
    • L'original dit que "Perl, for example, has a particularly rich set of extensions that allows even bracket matching which is usually not possible with more conventional regular expresssions." Veut-il dire qu'on peut construire en Perl une regexp qui accepte exactement les expressions avec des parenthèses bien imbriquées ? Je doute que ce soit possible, donc je n'ai pas traduit.

---

Pour match, on peut p.e. essayer : «association»

Quant au texte sur PERL, p.e. "Par exemple, PERL possède un ensemble particulièrement intéressant d'extensions qui permet, entre autres, l'association même de crochets, ce qui n'est généralement pas possible dans les systèmes d'expressions rationnelles plus conventionnels."

--- Pour match, à mon avis "correspondance" est intéressant.

Je vois un autre problème de traduction qui concerne le titre même "Expressions Régulières". S'il s'avère que ce sont bien des expressions, les termes "régulières" et "rationelles" qui n'ont, ni l'un ni l'autre fait l'unanimité dans les ouvrages traitant ce sujet (bien que "rationel" soit généralement présenté comme la traduction correcte), Il me semble que le terme "regular" dans la version anglaise ne sache même pas exactement ce qu'il signifie (mais là je m'avance sans doute n'ayant que peu de connaissances en anglais). Donc, je propose le terme "regexp" (à prononcer "reguex") qui s'il est un terme nouveau (issu de l'abréviation anglaise) et pose des problèmes de cohérence au niveau de la prononciation dans la langue française (le "g" devant le "e" devrait se prononcer "j")permet de désigner de façon non équivoque le principe même de ces expressions. Bien évidemment, des liens seraient à mettre depuis les pages "expressions régulièresé et "expressions rationelles".

           luna 22/02/2003 14:50 (CET)

Note sur la traduction originale:

  • D'accord avec les traductions suivantes ?
    • "ensembles réguliers" for "regular set"
Parfaitement.
    • "théorie des langages formels" pour "formal language theory"
Aussi.
    • "étoile de Kleene" pour "Kleene star"
Itou. Avec la variante "fermeture de Kleene" quand on parle de l'étoile d'un langage (mais peut-être que Kleene closure ou je ne sais quoi de ce goût-là se dit aussi en anglais ?)
http://www.liafa.jussieu.fr/~jep/Resumes/StarHeight.html dit "hauteur d'étoile", de même que http://www-igm.univ-mlv.fr/Seminaire/1994-1995/1995-06-06/ et http://www.infres.enst.fr/~jsaka/PUB/StarHeightResume.html.
    • "opérateur de choix" pour "choice operator": pq pas "opérateur alternatif" ?
Les deux me paraissent clairs...
  • Comment traduire "match" en français ? Le paragraphe pour les expr.reg. sous Unix utilise beaucoup "match", j'ai dû contourner la difficulté, est-ce que çà donne bien ?
Oui. À titre d'info, l'excellente traduction française du 'Dragon Book' (Compilateurs : Principes, techniques et outils -- à mettre peut-être en bibliographie sur le sujet ?) dit qu'une expression dénote un langage, que '.' désigne un caractère quelconque, et qu'un regexp ou un automate reconnaît une chaîne donnée. (Ils précisent bien qu'ils se sont permis tous les néologismes nécessaires, mais j'ai l'impression qu'un certain nombre ont été largement adoptés.)
  • J'ai modifié certain passages:
    • L'original dit que "Perl, for example, has a particularly rich set of extensions that allows even bracket matching which is usually not possible with more conventional regular expresssions." Veut-il dire qu'on peut construire en Perl une regexp qui accepte exactement les expressions avec des parenthèses bien imbriquées ? Je doute que ce soit possible, donc je n'ai pas traduit.
D'après la page man de la bibliothèque pcre, c'est presque le cas...
 RECURSIVE PATTERNS
    Consider the problem of matching a  string  in  parentheses,
    allowing  for  unlimited nested parentheses. Without the use
    of recursion, the best that can be done is to use a  pattern
    that  matches  up  to some fixed depth of nesting. It is not
    possible to handle an arbitrary nesting depth. Perl 5.6  has
    provided   an  experimental  facility  that  allows  regular
    expressions to recurse (amongst other things). It does  this
    by  interpolating  Perl  code in the expression at run time,
    and the code can refer to the expression itself. A Perl pat-
    tern  to  solve  the parentheses problem can be created like
    this:
      $re = qr{\( (?: (?>[^()]+) | (?p{$re}) )* \)}x;
    The (?p{...}) item interpolates Perl code at run  time,  and
    in  this  case refers recursively to the pattern in which it
    appears. Obviously, PCRE cannot support the interpolation of
    Perl  code.  Instead,  the special item (?R) is provided for
    the specific case of recursion. This PCRE pattern solves the
    parentheses  problem (assume the PCRE_EXTENDED option is set
    so that white space is ignored):
      \( ( (?>[^()]+) | (?R) )* \)
    First it matches an opening parenthesis. Then it matches any
    number  of substrings which can either be a sequence of non-
    parentheses, or a recursive  match  of  the  pattern  itself
    (i.e. a correctly parenthesized substring). Finally there is
    a closing parenthesis.
    This particular example pattern  contains  nested  unlimited
    repeats, and so the use of a once-only subpattern for match-
    ing strings of non-parentheses is  important  when  applying
    the  pattern to strings that do not match. For example, when
    it is applied to
      (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()
    it yields "no match" quickly. However, if a  once-only  sub-
    pattern  is  not  used,  the match runs for a very long time
    indeed because there are so many different ways the + and  *
    repeats  can carve up the subject, and all have to be tested
    before failure can be reported.
    The values set for any capturing subpatterns are those  from
    the outermost level of the recursion at which the subpattern
    value is set. If the pattern above is matched against
      (ab(cd)ef)
    the value for the capturing parentheses is  "ef",  which  is
    the  last  value  taken  on  at the top level. If additional
    parentheses are added, giving
      \( ( ( (?>[^()]+) | (?R) )* ) \)
         ^                        ^
         ^                        ^ the string they  capture  is
    "ab(cd)ef",  the  contents  of the top level parentheses. If
    there are more than 15 capturing parentheses in  a  pattern,
    PCRE  has  to  obtain  extra  memory  to store data during a
    recursion, which it does by using  pcre_malloc,  freeing  it
    via  pcre_free  afterwards. If no memory can be obtained, it
    saves data for the first 15 capturing parentheses  only,  as
    there is no way to give an out-of-memory error from within a
    recursion.
--MM

---

Tout d abord felicitations pour la qualite du travail. Pour le langage, expression rationnel viens du fait que ce sont les langages exprimables par les operateurs +, *, ect... et non pas tout les langages, c est une analogie avec les expressions algebriques. Operateur de choix me sembe bien. On peut definir * par E*=Ui>=0 Ei avec comme convention E0={&epsilon} ca peut être interessant de le mettre On peut definir E+par E+=Ui>0 Ei donc comme * mais sans &epsilon.

Dtcube

Où ajouter : "+?" et "*?" ?[modifier le code]

Je ne sais pas trop où placer dans l'article les notations "+?" c-à-d "+" (=1 à infini) suivi du "?" signifiant dans ce cas-ci : minimiser la structure produite.
exemple :

  • a{b|c}+ sur la structure "abbbbcbbbbcccc" => "abbbbcbbbbcccc"
  • a{b|c}+? sur la structure "abbbbcbbbbcccc" => "ab"

Article de Qualité[modifier le code]

J'enlève le bandeau article de qualité pour les raisons suivantes:

  1. pas de justification (bandeau apposé avant le système de passage en AdQ, semble-t-il)
  2. le plan laisse à désirer:
    1. Les expressions rationnelles en théorie des langages formels
      1. Exemples
    2. Les expressions rationnelles sous Unix
      1. Exemples
      2. Exemples
    3. Annexes
      1. Liens externes
      2. Bibliographie
  3. La présentation de l'article ne casse pas des briques
  4. Dans les cas concrets, seules les expressions régulières sous Unix semblent être présentées (ou du moins la formulation le laisse entendre)

GôTô ¬¬ 25 novembre 2005 à 17:34 (CET)

Je suis d'accord.
Je trouve que l'anathème sur ceux qui persistent à appeler ces langages «réguliers» est excessif. J'ai appris les langages réguliers en 1969 de Claude Pair et il les appelait comme ça et je trouvais et trouve cela très bien et je continuerai à les appeler ainsi et je ne pense pas avoir tort. Il ne s'agit même pas d'un angliscisme.
Pierre de Lyon 21 décembre 2005 à 10:58 (CET)

Régulier vs rationnel[modifier le code]

Les deux usages sont répendus. M'a question est de savoir pourquoi existe-t-il cette gueguerre? Quelles sont les origines de ces deux apelations?

Le terme anglais étant "Regular Expressions", la traduction "Expressions Régulières" trouve sa légitimité dans le rapprochement accoustique des termes. De plus le sens est très proche, bien qu'on puisse noter que le terme français "régulier" a tendance à désigner une notion de fréquence autant qu'une notion de règle. Cette famille de notations a originellement été conçue pour simuler la logique neuronale. C'est pourquoi le terme "rationnelles" convient également à qualifier ces expressions : elles doivent suivre une règle rationnelle.
Cette explication n'a pas un caractère "authentique", ça n'est qu'une explication qui me semble tout à fait légitime, et je pense pouvoir l'avancer sans trop prendre de risque : les deux termes trouvent ainsi leur légitimité.
Kitai 11 août 2006 à 18:58 (CEST)
Si l'on cherche "expression(s) régulière(s)" avec Google on trouve environ 400'000 pages, alrs que "expression(s) rationnelle(s)" n'en donne que 100'000 environ. Etant donné qu'en terminologie c'est la majorité qui a raison, il faudrait de fait ramplacer "rationnelle" par "régulière". Ce d'autant plus qu'en allemand, italien, espagnol, polonais, etc. c'est l'équivalent de "régulière" qui a été choisi.
De plus, le terme "expression rationnelle" ne fait que semer le trouble chez ceux, en particulier les étudiants, qui consultent régulièrement des textes en anglais ou dans d'autres langues.
J'ai remplacé "erronément traduite par expression régulière" par"ou expressions régulières"
Gilles Falquet 5 janvier 2007 à 10:33 (CET)
De toute façon, les deux articles expression régulière ou expression rationnelle conduisent au même résultat. Mon avis par rapport à la polémique est que cela dépend, comme le dit Frederictnd, du lieu où ont émergé les concepts, à Paris (entre autres) on les a appelées « rationnelles » et à Nancy (entre autres) on les a appelées « régulières ». On pourrait traduire cette double terminologie dans le titre de l'article, ce qui impliquerait un renommage. Pierre de Lyon 5 janvier 2007 à 11:13 (CET)
Juste un petit complément d'information pour rappeler aux contributeurs que fr:WP est francophone plutôt que fr.FR en allusion à "Nancy vs Paris" ;)
Définition trouvée dans le GDT :
Motif constitué d'une chaîne de caractères spécifiant des conditions à remplir lors d'une recherche effectuée dans un éditeur de texte, et qui correspond à la chaîne recherchée.
terme(s) non retenu(s) :
expression régulière
Note(s) :
Une expression rationnelle est formée de texte et de caractères spéciaux (les métacaractères). Ces derniers sont des caractères possédant une signification particulière et qui, dans un contexte d'expression rationnelle, sont interprétés comme des opérateurs.
Le terme expression régulière, calqué directement de l'anglais, est très souvent critiqué.

Personnellement j'ai l'habitude d'utiliser expression régulière, c'est ce que j'ai appris dans l'ancien temps ;) et par ce terme que je suis arrivé à cette article. De plus, je confirme que c'était aussi utilisé en espagnol. (J'utilise le passé car cela fait plus de 20 ans que j'ai appris cette expression dans les deux langues)
Conclusion, ne changez pas le lien qui redirige vers cette page, ni la première phrase : " Une expression rationnelle ou expression régulière...", c'est très bien ainsi. Je rejoins aussi en cela Frederictnd et son commentaire régulier_ou_pas plus bas.
-- SerSpock à l'inter...もしもし 12 juillet 2008 à 11:51 (CEST)
"[...] est très souvent critiqué." Ah oui ? Qui d'autre que l'Office Québécois pour critiquer cette horreur de mot qui ressemble à l'anglais ? ;) Wikipédia ayant pour mission de représenter une image de la réalité plutôt que d'influencer l'usage, je suis pour l'utilisation du terme expression régulière quand bien même il serait faux, laid ou tout ce qu'on veut. Mais bon, ça ne vaut pas le coup de se bagarrer pour une question de termes ; d'autant que quand on programme, on écrit tous RegExp(). Glaviot (d) 11 avril 2011 à 21:55 (CEST)
"Ah oui ? Qui d'autre que l'Office Québécois pour critiquer cette horreur de mot qui ressemble à l'anglais ?" Moi, modeste informaticien et Français, les quelques enseignants-chercheurs en linguistique informatique que j'ai eu la chance de rencontrer, les informaticiens que je côtoie préfèrent également le terme d'expression rationnelle. "Wikipédia ayant pour mission de représenter une image de la réalité plutôt que d'influencer l'usage". Non, je ne suis pas d'accord. Wikipedia a un caractère encyclopédique, il doit respecter la typographie, la langue, l'orthographe. Sur un forum ok - bien que moi je n'aime pas - on peut mélanger les langues dans une même phrase ou bien parler en langage sms. L'emploi du terme expression rationnelle n'est pas une "horreur" bien entendu, mais ça reste un anglicisme. Je préfère parler de chiffrement plutôt que de cryptage ou bien de sauvegarde plutôt que de backup. C'est un choix. Le choix de ne pas faire rentrer n'importe quel néologisme sur Wikipedia sans mettre en avant le fait qu'il existe un terme français déjà existant. Si tous les développeurs écrivent RegExp() (quoique là dessus je ne suis pas non plus d'accord, parce que par exemple moi j'écris a =~ s//g;), ça ne serait pas parce que cela veut dire regular expression ? 78.155.140.232 (d) 5 mai 2011 à 14:53 (CEST)
Pour mettre tout le monde d’accord, on pourrait renommer la page en expression normale. Je plaisante, bien entendu, mais c’est ce que j’ai trouvé sur Termium. On rencontre parfois cette dénomination sur Internet, mais je ne l’avais jamais vue avant aujourd’hui. Mon avis est que les deux appellations (rationnelle ou régulière) sont absolument justifiées, quoi qu’en dise le GDT (que je trouve absolument génial, là n’est pas la question). --eiku (d) 13 avril 2012 à 20:58 (CEST)
«ça ne vaut pas le coup de se bagarrer pour une question de termes ; d'autant que quand on programme, on écrit tous RegExp»
En conséquence, il faut utiliser expression rationnelle dans l'article, pour l'aspect académique, et préciser que les programmeurs utilisent expressions régulières par influence des mots RegEx et RE et de l'anglais. 77.193.104.227 (discuter) 19 août 2017 à 14:59 (CEST)
« Expression rationnelle » est employé dans le contexte de la théorie des langage formels, et c'est à peu près tout. Dans ce contexte, cela désigne un outil associé aux grammaires de type 3 et uniquement à ces grammaires. Leur usage est développé dans l'article Langage rationnel. Cet article parle d'un outil à la puissance expressive bien plus importante, puisqu'il permet de décrire des grammaires de type 1 et 2. Il est donc important de mettre en évidence la différence entre ces deux outils.
Par ailleurs, « expression rationnelle » et « expression régulière » sont chacun utilisés dans la langue française depuis leur invention, et il en est de même en langue anglaise (cf. Google trends). Par exemple, Marcel-Paul Schützenberger utilise « expression régulière » dès 1966 dans ses cours. La tendance a favorisé « expression régulière » à partir du développement d'internet en 1995. Mais il est abusif de parler d'anglicisme dans la mesure où, d'une part, le terme était déjà employé auparavant et, d'autre part, il désigne la plupart du temps l'outil décrivant les grammaires de types 1, 2 et 3.
« Expression régulière » est ainsi bien le terme adapté. Comme il s'agit d'un sujet récurrent, je me demande si l'article ne mériterait pas une petite section abordant la question ? Vincent P. (discuter) 19 août 2017 à 19:09 (CEST)

Allusif ?[modifier le code]

Le bandeau comme quoi l'article est trop allusif me parait franchement... abusif et n'est pas justifié sur cette page de discussion. Je pense l'enlever. --Bortzmeyer 4 octobre 2006 à 22:45 (CEST)

J'imagine que c'est le sujet qui veut qu'il faille se concentrer pour comprendre. — Meithal - Tav 4 octobre 2006 à 22:47 (CEST)

régulier ou pas[modifier le code]

Je connaissais les appellations régulier et rationnel pour les avoir apprises en cours et les avoir plusieurs fois rencontrées dans la littérature mais j'ignorais l'existence d'une opposition.

En tout cas je suis venu lire les discussions pour comprendre la raison du sentiencieux "parfois traduite erronément" qui n'est justifié nullepart dans le texte et qui est faux dans les faits, sauf à considérer que "parfois" s'applique dans la grande majorité des cas. Je ne connais que la littérature de Schützenberger, Nivat et étudiants pour offrir un échantillon où la fréquence s'inverse.

Il est parfaitement exact que rationnel, avec son origine équationnelle, est bien mieux fondé que régulier mais le lecteur n'est pas intéressé par des petites saillies pédantes; il veut comprendre et il vient avec son vocabulaire.

À mon sens il faudrait soit retirer ce erronément, soit l'expliquer. Frederictnd.

Utf8 et octets divers[modifier le code]

Dans un flot utf-8, comment se traite le cas d'une séquence d'octets qui ne correspondrait en aucun cas à un caractère?

L'utilisation des expressions régulières dans .NET Framework[modifier le code]

Est-ce qu'il ne faut pas ajouter que les expressions régulières sont également utilisées dans .NET Framework, permettant ainsi leur utilisation dans C#, managed C++, Visual Basic .NET etc. ? Je crois qu'il est quand même important de mentionner la chose, puisqu'on dit que c'est utilisé dans PHP, MySQL etc., mais laissons de coté tout le .NET Framework sans raison visible... Non ?

Utilisation des RegExp[modifier le code]

La présentation Expression_rationnelle#Utilisation me parait hyper léger.

Nul part, l'article ne dit à quoi ça sert. Pourtant, les regexp sont la base d'un certain nombre de domaine, notamment les langages formels (spécialement les langages informatiques) ainsi que les outils manipulation de texte, avec aujourd'hui la chasse au spam et les outils web.

Je pense qu'un ajout serais judicieux. Je peux si cet avis est partagé. bateast (d)

En effet, je mettrais ce chapitre « Utilisation » après celui intitulé « Origine ». D'autre part, je constate que l'introduction de l'article en dit plus sur les utilisations. Il faudrait peut-être penser à fusionner en raccourcissant l'introduction. Pierre de Lyon (d) 13 décembre 2007 à 09:21 (CET)

Besoin d'une petite aide Emacs (voir caractère gras)[modifier le code]

Bonjour, j'aimerais effacer ceci de façon automatique dans le corps d'un texte avec Emacs. ([1] ; [2] ; [3] ; [4] ainsi de suite). Comment puis-je faire ? J'ai une idée qui ne fonctionne pas car je manque de connaissance (je ne le connaissais même pas de nom hier). Mon idée : [puis mettre un code pour indiquer au logiciel qu'il efface entre le premier caractère (le crochet dans cette exemple) et le dernier caractère (le crochet dans cette exemple). Merci de me répondre très rapidement, car ça me bloque (cela fait environ 1h30 que je cherche sur internet) à la contribution de Wikipédia. Si vouss ne savez pas aussi, merci de prévenir une personne qui saurait me répondre. J'attends la réponse sur cette page en continuant mes recherches.Vi..Cult... (discuter) 17 février 2008 à 16:08 (CET)

Je crois avoir trouvé le site qu'il me faut : [1]. Vi..Cult... (discuter) 17 février 2008 à 16:18 (CET)
Arg, ça ne fonctionne toujours pas, que c'est difficile quand on ne sait pas et qu'il n'ya personnes pour répondre à cette question. Je persévère, je finirais bien par trouver. Vi..Cult... (discuter) 17 février 2008 à 17:45 (CET)
Je voudrais bien t'aider, mais ta question est mal posée. Quelle chaine de caractères précise veux-tu supprimer? Pierre de Lyon (d) 17 février 2008 à 21:25 (CET)
S'il s'agit de supprimer toutes les occurences de [i] où i est un nombre, voici une commande qui fonctionne (je viens de tester) :
M-x replace-regexp RET \[[0-9]+\] RET rien RET
M-x est généralement Alt+x, RET est le retour a la ligne, et rien est vide ;)
bateast (d) 20 février 2008 à 13:32 (CET)

Notation simplifiée des shells Unix ou Linux[modifier le code]

Bizarre ce chapitre, car les shells comme Bash n'utilisent pas du tout la syntaxe présentée pour le développement des chemins. Je ne sais même pas si ce qu'ils utilisent sont des expressions rationnelles. Marc Mongenet (d) 14 août 2008 à 03:31 (CEST)

La section Expression_rationnelle#Utilisation aussi me laisse un peu sur ma faim: On y évoque pas assez AMHA le traitement de lot qui ne se résume pas qu'aux "robots" anti pourriels.
En tout cas j'aimerais aussi connaître pourquoi le traitement des chemins/fichiers n'obéissent pas aux mêmes règles. Dans « grep ".??*" .??* » les deux expressions n'ont pas du tout le même sens. Si quelqu'un pouvait me rendre moins ignare -- SerSpock à l'inter...もしもし 14 août 2008 à 11:16 (CEST)

lien HS[modifier le code]

Bonjour, le dernier lien de la page (tester vos regex) pointe vers un site qui semble HS:

http://lumadis.be/regex/index.php

Cdlt

Euh, cela fonctionne bien chez moi. C'est peut-être un problème de pare-feu ou de javascript ? (HS = "Hors sujet", ou "Hors-service" ?) Romainhk (QTx10) 13 juillet 2010 à 16:25 (CEST)

a[ou]+[modifier le code]

L'exemple " a[ou]+ : correspond à « aou », « ao », « auuu », « aououuuoou », etc. n’importe où dans le texte. " ne me paraît pas cohérent avec les autres exemples du même type (y compris à la ligne suivante de l'article), où il est dit que [ou] désigne soit o, soit u.

Un débutant...

Tu veux parler de la ligne avec "peu[xt]?" ? En fait, c'est le "?" qui change tout : il veut dire « aucun ou un caractère » pris dans l'ensemble de deux lettres {x,t} (alors que "+" veut dire « un ou plusieurs caractères »). "?" ne permet pas la répétition donc un ensemble de 2 lettres donne forcément au maximum 3 correspondances possibles (le vide, la première lettre, ou la seconde). Romainhk (QTx10) 25 octobre 2010 à 17:27 (CEST)

Confusion au niveau du * de bash[modifier le code]

N'y a-t-il pas confusion, dans la catégorie "Notation simplifiée des shells Unix ou GNU/Linux", concernant le caractère * ? Il est indiqué qu'il représente zéro, une ou plusieurs fois le caractère qui le précède, soit le comportement des expressions régulières classiques j'y consens, mais dans le cas de bash par exemple, et ça me semble être le sujet de cette catégorie, le comportement est tout autre puisque * représente "n'importe quels caractères en nombre quelconque". ba* devra donc correspondre à baa, bab, bac, baz, babouche, bas-résille... non ?

En effet, les deux articles bash et * vont bien dans ce sens, il faudrait donc expliciter. JackPotte ($) 29 octobre 2010 à 12:58 (CEST)
Après un essai, bash et ER ont bien le même comportement en ce qui concerne les [] : "ls a[bc]*" se comporte comme /a[bc]*/ et trouve ac, a, abbbb...
Par contre, c'est différent sans : "ls a*" ne se comporte effectivement pas comme /a*/, mais comme /a.*/ : il trouve aaa, ab, mais aussi atoto. Le point est comme sous-entendu pour bash!
Donc c'est cette distinction qu'il faudrait préciser : en l'absence d'ensemble explicite, bash "suppose" un point. Romainhk (QTx10) 29 octobre 2010 à 16:18 (CEST)

Expression rationnelle (d · h · j · · Ls) vers Expression régulière (h · j · )[modifier le code]

Discussion copiée depuis Wikipédia:Demande de renommage
  • Statut : Requête refusée - 4 février 2012 à 01:00 (CET)
  • Demandé par : Jack ma ►discuter le 20 janvier 2012 à 07:13 (CET)
  • Justification de la demande : Ce terme informatique est bien plus employé en français. Voir les références externes de l'article et sa PdD.
La lecture des références indique justement que "rationnelle" est davantage utilisé ! --Laurent N. [D] 24 janvier 2012 à 10:10 (CET)
Et vu l'absence de réponse, refus. Sardur - allo ? 26 janvier 2012 à 01:57 (CET)
A part les 2 livres mentionnés, le terme est bien plus d'usage courant; voir les Notes et références. Comparer aussi le nombre de réponses Google (régulière, rationnelle)et voir la page de discussion. Dans le monde informatique (et expression régulière est typiquement employé que dans ce monde là), le terme expression rationnelle est quasiment inconnu. En tant que programmeur, je peux vous le dire. Jack ma ►discuter 27 janvier 2012 à 09:29 (CET)
Je réouvre vu les nouveaux éléments (tardivement) apportés. Sardur - allo ? 27 janvier 2012 à 10:29 (CET)
Pas convaincu : j'ai toujours employé l'expression « expression rationnelle », c'est toujours cette expression que moi et mes collègues employions à l'époque où je donnais des cours et l'expert regexp qui travaille à côté de moi m'indique que « rationnelle » est une expression employée en français depuis longtemps alors que « régulière » n'est employé que depuis que le « regular » anglais a été re-traduit (on le voit donc effectivement fréquemment dans les traductions de l'anglais qui sont légion sur le web.
Amicalement — Arkanosis 27 janvier 2012 à 13:33 (CET)
Pour préciser le « longtemps », ça semble remonter aux travaux de Schützenberger en théorie des langages formels et théorie des automates dans les années 60. — Arkanosis 27 janvier 2012 à 13:57 (CET)
Pour le renommage. J'ai appris les deux, mais « régulière » semble être entré dans les usages. Zetud (d) 27 janvier 2012 à 20:38 (CET)
Contre le renommage. Les deux usages sont courants dans les publications francophones, mais « expression régulière » relève plutôt de l'anglicisme. Voir aussi Langage rationnel. Bibi Saint-Pol (sprechen) 28 janvier 2012 à 23:22 (CET)
Je lis langage rationnel ou langage régulier. --pixeltoo (discuter) 2 février 2012 à 00:00 (CET)
 Plutôt pour J'ai le bouquin Expressions régulières de J Friedl sorti en 2002 chez O'Reilly dans lequel le traducteur explique en fin de préface (xxv) que les deux positions sont en principe défendables mais que les moteurs de recherche du monde francophone privilégiaient « expressions régulières » (4 fois plus nombreuses que « expressions rationnelles ») et que « expressions rationnelles » serait défendu par une école française comme « une sorte d'étendard » mais que celles ci n'auraient aucun rapport avec la raison. Et donc pour cela il a privilégié une expression plutôt que l'autre. --pixeltoo (discuter) 1 février 2012 à 23:54 (CET)
Le renommage ne peut à mon avis pas être décidé ici s'il n'y a pas de consensus sur la PDD de l'article, car la simple application des règles de Wikipédia ne suffit pas. Seudo (d) 3 février 2012 à 11:27 (CET)
Je ne suis pas sûr du sens de la précédente intervention, mais je partage ceci : mettez-vous d'abord d'accord (en consultant les projets concernés), puis revenez ici. Sardur - allo ? 4 février 2012 à 01:00 (CET)
Je voulais simplement dire que la décision demande une bonne connaissance du sujet sur le fond (et donc, comme tu le dis, un consensus sur le projet ou la page concernés), contrairement à la plupart des renommages pour lesquels il suffit d'appliquer les conventions de Wikipédia sur les titres ou de faire une rapide recherche sur Internet. Seudo (d) 4 février 2012 à 08:06 (CET)
Discussion copiée depuis Wikipédia:Demande de renommage
  • Statut : Requête acceptée - 19 mai 2017 à 23:56 (CEST)
  • Demandé par : Epsilon0 ε0 le 18 mai 2017 à 01:24 (CEST)
  • Justification de la demande : consensus obtenu sur le projet mathématique

Bonjour, suite à cette discussion pouvez vous inverser le renommage de l'article Expression régulière en Expression rationnelle, Merci, cordialement, --Epsilon0 ε0 18 mai 2017 à 01:24 (CEST)

Ouh, ouh, Ya qqun ? Non enfin plus sérieusement il ya t-il des admin dans le coin pour adhérer/contester/discuter sur cette redirection demandées ? Je ne me vois pas, après 11 ans de présence ici, demander les outils d'admin uniquement pour trancher des bidules un peu technique issu des maths. Vu que sur le cas présent, un avis majoritaire a été fait. --Epsilon0 (discuter) 19 mai 2017 à 23:39 (CEST)

 Fait. — Thibaut (discuter) 19 mai 2017 à 23:56 (CEST)

Regex vs métacaractères[modifier le code]

Suite au retrait du paragraphe Unix, il faudrait sourcer ces assertions. L'expression regex unix est assez répandue dans l'usage, de plus la Wikipédia anglophone affirme que les métacaractères font partie des expressions rationnelles, personnellement j'avais aussi compris qu'il y avait un rapport d’hyponymie sans exclusion entre les deux ensembles. JackPotte ($) 29 mai 2011 à 15:01 (CEST)

Je n'ai pas retiré le paragraphe "Unix", mais le paragraphe "shells". Je ne conteste pas l'existence d'expressions régulières sur unix, je dis seulement que les shells ne les utilisent pas. Aussi je ne suis pas en contradiction avec l'expression "regex unix" que tu cites. Ma source c'est mon métier d'administrateur système unix/linux. Mais j'ai aussi lu le man de bash. Si je l'ai retiré, c'est qu'il comportait de graves erreurs sur la signification des ., * et ? qu'il était impossible de laisser.
Sur la partie anglophone de wikipedia, je ne la comprends pas comme toi: l'article que tu cites montre qu'il existe aussi des jokers dans les expressions rationnelles. Mais ce n'est pas parce qu'il y a aussi des jokers en shell que ça en fait des expressions rationnelles. Ce sont juste des jokers, et en plus pas les mêmes. L'article en:Regexp indique fort justement: "Many modern computing systems provide wildcard characters in matching filenames from a file system. This is a core capability of many command-line shells and is also known as globbing. Wildcards differ from regular expressions in generally expressing only limited forms of patterns." Non, vraiment, les jokers du shell ne sont pas des expressions rationnelles.

Renommage de l'article[modifier le code]

Pour info, une discussion sur le renommage de l'article a eu lieu. Mais je pense qu'il faudrait un consensus ici car la question relève des linguistes et des informaticiens, pas des administrateurs de Wikipédia.

En ce qui me concerne, je constate qu'aucun livre sur Amazon ne semble avoir expressions rationnelles dans son titre (les premiers résultats de cette recherche sont des livres construits de manière automatisée à partir d'articles de Wikipédia), alors qu'ils sont nombreux à être consacrés aux expressions régulières. Les liens externes du présent article contenaient des références vers des livres portant sur les expressions rationnelles, mais c'était une erreur que j'ai corrigée.

Toutefois, comme il est dit plus haut, l'OQLF privilégie les expressions rationnelles (je pense que ce n'est pas la peine de demander à l'Académie française ce qu'elle en pense Clin d'œil). Peut-être les chercheurs et les linguistes utilisent ce terme, alors que les praticiens de l'informaticien privilégient clairement les expressions régulières.

Sur le fond, les deux termes sont aussi peu clairs l'un que l'autre... Seudo (d) 3 février 2012 à 11:36 (CET)

Mon avis d'informaticien est que expression régulière est légèrement fautif car traduction mot à mot de l'expression anglaise voir notamment la traduction en français de la documentation de perl http://perl.enstimac.fr/DocFr/perlre.html Xavier Combelle (d) 3 février 2012 à 12:12 (CET)
Pour aller dans ton sens, la même convention semble suivie par la documentation PHP. En revanche, les traductions du man grep varient : [2]. Seudo (d) 3 février 2012 à 14:15 (CET)

La requête de renommage en Expression régulière dont j'étais à l'origine a été refusée, malgré un léger pour. Elle ne peut avoir lieu sans consensus sur cette page de discussion. Pour résumer, c'est un anglicisme certes, mais bien passé dans les moeurs, et j'avais demandé ce renommage motivé par le principe de moindre surprise et au vu des nombreuses discussions. Je suis aussi pour ce renommage : moindre surprise (langage de tous les jours chez ceux qui l'emploie, en informatique), et aussi risque de confusion avec fonction rationnelle. Jack ma ►discuter 4 février 2012 à 07:59 (CET)

On peut essayer d'être cohérent avec la partie informatique théorique : je pense que tous les gens qui manipulent des langages rationnels (qui me semble quand même plus répandu que langages réguliers) ont tendance à privilégier expression rationnelle. Zandr4[Kupopo ?] 22 février 2012 à 12:13 (CET)
On pourrait rétorquer que expression régulière est plus rependu renommons langage régulier par cohérence... --pixeltoo (discuter) 22 février 2012 à 12:45 (CET)
Pas faux. Comme dans mon esprit, une expression rationnelle ne sert à peu près qu'à définir un langage régulier, j'ai réfléchi dans ce sens. Zandr4[Kupopo ?] 22 février 2012 à 12:52 (CET)

Ce que me gêne dans « rationnel », c'est la confusion avec la rationalité des philosophes et des cogniticiens. Je suis donc fondamentalement en faveur de la terminologie « régulier ».--Pierre de Lyon (d) 22 février 2012 à 16:48 (CET)

Métacaractères non expliqués[modifier le code]

J'ai l'impression qu'aucune vraie explication n'est donnée, dans l'article, sur la signification des métacaractères ., [, ], et ^ en tant que complémentaire d'un ensemble (opérateur NON). Quelqu'un pourrait compléter l'article ? Merci :-) 78.251.254.130 (d) 9 juin 2012 à 02:18 (CEST)

J'avoue que pour ces 2 questions ce ne m'est pas non plus clair. Je ne vois pas où « [, ] » est définit dans l'article ni où « ^ » l'est en tant que complémentaire (car je crois qu'en effet il a aussi une telle signification). Par contre l'exemple ^[st]ac : représente les mots « sac » et « tac » en début de ligne. est limpide. Quoique j'ai un doute : est-ce bien « ^[st]ac », qui représente ... ou « ^[s,t]ac »" ? Bref un bon en expression rationnelle pour démêler cela ? Cordialement. --Epsilon0 ε0 9 juin 2012 à 02:59 (CEST)
Fait. « ^[st]ac » est correct. La virgule est peu utilisée dans les expressions rationnelles (seulement pour signifier un nombre d'occurrences compris entre m et n, je crois.)Seudo (d) 9 juin 2012 à 08:40 (CEST)
Merci pour les précisions que tu as apportées. --Epsilon0 ε0 9 juin 2012 à 14:17 (CEST)

Besoin d'avis[modifier le code]

Bonjour,

Les sections Expressions rationnelles et Unicode et ICU n'ont quasiment pas changé depuis 10 ans. Savez-vous si les problématiques exposées sont toujours d'actualité ? Vincent P. (discuter) 11 mars 2017 à 03:20 (CET)

Le terme "expression régulière" est toujours plus employé et de moindre surprise que "expression rationnelle" (voir proposition de renommage plus haut, et Google: 317000 contre 69000). Jack ma ►discuter 12 mars 2017 à 08:28 (CET)
Je suis d'accord et j’appuierais une proposition de renommage dans ce sens :) Pas d'avis concernant les sections évoquées ? Vincent P. (discuter) 12 mars 2017 à 21:58 (CET)