Expressions Regulières demo:

Regular Expression's demo:



remplacer l'expression replace expression

par l'expression by expression

expression régulière regular expression
gourmand grindy
insensible à la cass case insensitive



Choissiez une demo ci-dessous (Je vous suggè de suivre l'ordre proposé), cliquez ensuite sur replace (à gauche) ou changez les valeurs avant de clicquez. (Le boutons Undo (annuler) vous permètra de revenire en arrière)
Choice a demo below (I suggest you to follow the order), then click replace (on the left) or modify the values before clicking replace. (the Undo! button may help you to play around)



remplacez une suite de 'u' par un seul 'u'
replace multiple 'u' by a single 'u'

Plus de détailles More Details :
u+ signifie le caractère u une fois ou plus
le signe + est un quantificateur
a* signifierait 0, 1 ou n fois le caractère a
b? signifierait 0 ou 1 fois le caractère b
(FAX)? signifierait 0 ou 1 fois les 3 caractères 'FAX'
(\bFAX\b)? signifierait 0 ou 1 fois le mot 'FAX'
Where u+ means the u caractere one time or more
the signe + is a quantifier
a* would mean 0, 1 or n times the caracter a
b? would mean 0 or 1 time the caracter b
(FAX)? would mean 0 or 1 time this string of 3 caracteres 'FAX'
(\bFAX\b)? would mean 0 or 1 time the word 'FAX' (suronded by spaces)

Avec le même paramètre 'u+' qu'à la demo précé mais sans utiliser les regex; 'u+' ne serrat plus considere comme une suite de 'u' mais comme l'expression exacte 'u+'.
With the same parameters 'u+' as in the previous demo 1 but whitout the use regex; 'u+' will not stands anymore as multiple 'u' but as the exact expression 'u+'

Plus de détailles More Details :
si le mode regex n'est pas utilisé
u+ signifie simplement le caractère u suivi du caractère +.
if the regex mode is unused
u+ means nothing but the caracter u followed by the caracter +.

Comme à la première demo mais en mode non gourmand.
As in the first demo but in non grindy mode.

Plus de détailles More Details :
grindy peut se traduire par gourmand, avide, etc. (g) est un des deux modificateurs à vraiment considerer quand vous construisé un objet regex.
Ces modificateurs (tel qu'on les nomes en Perl, dans d'autres languages ont parleras volontier d'options) ne font pas réellement partie de l'expression reguliere à laquel ils s'appliquent mais modifie la facons dont le programe interprete et utilise cette expression.
Dans le mode de fonctionnement g, un maximum de remplacements aura lieu.
c'est donc ce qui est généralement appelé un remplacer tous.
grindy (g) is one of the two flags you really should consider while making a regex object.
Those flags (as we call it in Perl, in some other language we'll use the word options) are'nt really part of the regular expression on wich they're applied but they strongly act on the way the programm'll interpret and use this expression.
In the g mod a maximum of replacements will happen.
That's what we ussualy called a replace all.

Comme à la première demo mais en respectant la cass.
As in the first demo but in case sensitive mode.

Plus de détailles More Details :
La recherche peut tenir compte, ou non, des différences entre majuscules et minuscules.
Ceci grace au modificateur i comme insensible à la casse (case insensitve).
Voirs les détailles de la demos precedentes pour plus d'informations sur les modifiateurs.
The search process may consider, or not, the difference between majusculs and minusculs.
Thaks to the i flag as case insensitve.
See the details of previous demo, for more informations on flags.

Metre en évidence toutes les chaines répètant trois foix ou plus le même charactère.
mark all characters repeated 3 times or more.

Plus de détailles More Details :
Voici 5 nouvelles notions :
  1. le signe . (point/dot) signifie n'importe quel caractère.
    pour représenter un vrai point, il faudrait écrire \.
  2. une partie de l'expression peut être mise entre parenthèses
    ce qui permet de la manipuler plus facilement.
  3. \1 indique le contenu trouvé pour la première parenthèse.
    on utilise de même \1 , \2 , \3 ... pour les diverses parenthèses.
    attention : ceci s'utilise au sein de l'expression de recherche!
  4. {2,} est un quantificateur plus précis que les + ? *
    {2,} signifie au moins 2 fois
    {2,7} signifie entre 2 et 7 fois
    {3} signifie exactement 3 fois
  5. $1 indique le contenu trouvé pour la première parenthèse.
    on utilise de même $1 , $2 , $3 ... pour les diverses parenthèses.
    attention : ceci s'utilise au sein de l'expression de remplacement!
Here are 5 new notions :
  1. the signe . (dot) means any caracter.
    if you need to mean a real point, you should write it this way \.
  2. a part of the expression may be written between ( and )
    this should make manipulations on it much more easy.
  3. \1 means the content find for the first parenthese.
    on the same way use \1 , \2 , \3 ... for the first the second the third and so on.
    Be carefull: this is use on the expression search!
  4. {2,} is quantifier more precise than + ? *
    {2,} means at least 2 times
    {2,7} means between 2 and 7 times
    {3} means exaclty 3 times
  5. $1 show the content found for the first pharantes
    on the same way we use $1 , $2 , $3 ...
    Be carefull : this is use on the expression replacement!

Supprimez les répegrave;titions pour tout les charactères répètés trois foix ou plus.
Suppres repetions for all characters repeated 3 times or more.

remplace les chaines one, un, een... par '1' en fessant un like
replace strings like one, un, een... by '1'

Plus de détailles More Details :
Voici 2 nouvelles notions, et quellques dérivées :
  1. \b ne représente pas un caractère.
    vous pouvez le prononcer word boundary
    il indique une séparation entre des mots.
    dans le même genre, on trouve ^ et $
    qui désigne respectivement le début et la fin du texte traité.
  2. [ueo] indique n'importe lequel des caractères u, e ou o
  3. [ueoai] du coup, bien entendut, indiqueras n'importe quelle voyelle
  4. [0-9] indiquerait n'importe quel chiffre
    mais, dans ce cas precis \d est plus pratique
  5. [a-fA-F0-9] indiquerait tout caractère hexadécimal
    par exemple, [a-fA-F0-9]{8} pourrais indiqueer une PGP KEY ID valide
Here are 2 new concept and few derivativs :
  1. \b to not stand for a caracter
    you may call it word boundary
    so as you've understood it is the serpartion between words
    we've aswell ^ et $
    wich respectively stands for the beginig and the end of the text we're dealing with.
  2. [ueo] mean any of u, e or o
  3. [ueoai] 'll then mean any voyelles
  4. [0-9] means any digit
    but in this very case \d is much more usefull
  5. [a-fA-F0-9] mean mean hexadecimal caracter
    as, for example, [a-fA-F0-9]{8} could mean a valid PGP KEY ID

remplace les chaines one, un, een... par '1' sans like, moins puissant mais plus précis.
replace strings one, un, een... by '1' without like, less powerfull but more precise.

virer les espaces de debut.
remove leadings spaces.

Plus de détailles More Details :
  1. ^ indique le début du texte
    au même titre que $ en indique la fin.
  2. \s indique tout espace, tabulation, etc.
    dans le même genre, on trouve :
    • \d un caractère numérique
      (et \D : tout caractère qui n'est pas \d)
    • \w un caractère ordinaire
      (et \W : tout caractère qui n'est pas \w)
    • \s un espacement
      (et \S : tout caractère qui n'est pas \s)
    • et, dans un genre légèrement différent :
      \b une séparation entre mots
      (et \B : toute situation qui n'est pas \B)
  3. * indique 0, 1 ou plusieurs fois
    on lira donc :
    remplacer le ou les espaces de début
    par rien du tout.
  1. ^ as seen befor means the start of the text
    as$ means its end.
  2. \s means any space, tabulation, etc.
  3. \d means any digit
    and \D : any caracter wich is not \d (wich not a digit)
  4. \w an ordinary caracter
    (and \W : every not \w caractere)
  5. \s space, tab,...
    (and \S : not \s)
  6. and if as we know
    \b a separation between words
    \B means then no serpations (not \b)
  7. * means 0, 1 or several times
    we read then
    replace the starting space(s) by nothing.

remplace le point par un point d'exlamation (mais seulement à la fin)
replace dot by exclamation (but only at the end)

Vous pourriez être embèté si vous oubliez le "/"
You may be in trouble if you forget de "/"

Plus de détailles More Details :
  1. \. indique le vrai caractère point
  2. . indiquerait n'importe quel caractère
  3. $ indique la fin du texte
    au même titre que ^ en indique le début.
  4. \.$ indique un point final
  5. .$ indique le dernier caractère, quel qu'il soit
  1. \. will means the caracter dot
  2. . becaus mean any caracter
  3. $, as we've seen, mean the end of the text
    as ^ means the begining
  4. \.$ means the las
  5. .$ means the last caracter whatever it is.

ajoutez un 's' à tout les mots qui ne se termine pas par 's'
add a 's' to all words not ending with 's'

Plus de détailles More Details :
  1. \B indique qu'on ne peut être à la limite d'un mot
  2. [^s] tout caractère autre que le caractère 's'
    cette fois ^ représente la négation.
  3. \b indique qu'on est à la limite d'un mot
  4. $1 représente de contenu de la première parenthèse :
    un caractère autre que 's'
    et qui n'est pas le premier d'un mot
  1. \B we're not at the boundary of a word
  2. [^s] any other caracter than 's'
    this time ^ stands for negation.
  3. \b we're at the boundary of a word
  4. $1 the content of the first parenthes :
    an other caracter than 's'
    which do not start a word

Changez du poor html en html standart.
Change some piece of poor html in to standart html

Plus de détailles More Details :
si un remplacement est défini en mode grindy (avide, gourmand),
il est possible d'inverser ce mode
pour un quantificateur particulier (ici, le *)
en le faisant suivre de ?.
on essaiera donc de trouver et remplacer le maximum possible de mots entre crochets (puisque le mode est grindy) mais, par contre, pour déterminer le contenu de chacun des mots (.*), on fera au plus court possible (.*?).
Essayez en supprimant le ?
au sein de l'expression de recherche, pour voir ce qu'il ce passe.
if a repleacement is define in grindy mode
it is possible to invers this mode for particular quantifier (the * in this case)
with following it by ?.
we'll then try to find and replace the maximum of words between '[' and ']' (as we're in grindy mode) but, to determine the content of each word (.*), we'll make it as short as possible (.*?).
you may trie to supress the ?
in the search expression to see what happen.

On peut en profité pour changer un peux la mise en forme
We may, by the way, slitly change the apparence.

Changez quellques peux les expressions.
Change a bit some expressions.

Plus de détailles More Details :
le caractère | (pipe) représente le OU
$1 représente le mot complet, éventuellement au féminin et au pluriel.
$2 représente le contenu de la deuxième parenthèse
(qui, dans ce cas, est inclus dans la première)
the caracter | (pipe) stands for OR
$1 the complet word.
$2 the content of the second parenthes
(wich is actually includ int the first one)

Même en conservant les annciennes
Even with keeping the old ones

Htmlisez les sauts de lignes
Htmlifie line breaks

Plus de détailles More Details :
\n représente un saut de ligne
\n means ligne break

Commentez une clef Hexadecimal
Comment an hexadecimal key
Plus de détailles More Details :
Nous cherchons 8 (exactement 8) caractères hexadécimaux,
éventuellement (le point d'interrogation) précédés de 0x.
Ce qui nous intéresse,
c'est le contenu de la deuxième parenthèse.
(qui, dans ce cas, est n'est pas inclus dans la première)
We're lookink for 8 (precicely 8) hexadecimals caracters,
maybe (the caracter ?) preceed by 0x.
we're intrested ,
on the content of the second parenthes.
(wich, in this case, is not include into the first )

Avec des valeurs Hexadecimales si vous n'utlisisez pas le paramètre i correctement, vous risquez d'obtenire un résultat inatendut
While dealing with hexadecimal values if you don't use the i parameters properly, you may get an unexpected result
L'expression regulière pour obtenire le bon résultat dans ces conditions est celle-ci
To obtain the right result in this conditions you should use this regular expression instead

Htmlisez tout les liens qu'il soit notées selon un html simplifié à la mediawiki, à la wikini, ou à la spip.
Htmlifie all links wathever mediawiki, wikini, or spip, poor html had been initialy used.

Plus de détailles More Details :
Ici, les choses peuvent semblées un peux ardues,
L'expression regulière utlisée commence à
devenire un peux plus longue que dans nos premiers examples.
Nous allons ici la decortiquée,
toutefois, gardez en tête que pour vos applications,
rien ne vous oblige à manipuler de longues expressions,
il serrat souvent plus aisé de scinder celle-ci et de procèder par étapes.
\[(\S+?)(\s+|\||(\-\>))([^\]]+)\])
  1. \[ : comme vous le savez le '\' signifie, n'interpret pas le caracter qui suit, en l'occurence '[' nous nous interesseront donc à une chaine de caractères commencent par '[' et suivit en suite de
  2. (\S+?): n'importe quelles caractère qui n'est pas un espace '\S\'. Une ou plusieur fois '+'. Mais ne soyons pas trop gourmand '?', calmons les ardeurs du '+' quand une autres rèle de notre expression est respectée.
    Le Tout étant mis entre '(' et ')', pour nous permetre d'une part de séparer, de donner une priorité à sont contenut (vous savez comment fonctionne une prenthèse ;-))
    mais d'autre part de stocker le résultat en mémoire dans une variable que nous pourrons reutiliser plus tard, comme nous le verrons.
    Si nous ne souhaitions pas conserver ce résultat, il aurrais alors été plus économe d'utilisé des ' >[ ]' au lieux de '( )'
  3. Nous quittons cette premier partie soit car ces condtions ne sont plus respectee soit (il y a un espace) soit, grace au ?, l'une des coditions suivantes est respectée, a savoirs:
  4. (\s+|\||(\-\>))
    1. '\s+': un espace repeté, un certaint nombre de foix.
      L'espace étant le séparateur mediawiki.
    2. '|': ou
    3. '\|': le caracter pipe (de nouveaux preceder par le '\' il ne serrat pas interpreter mais considerer directement comme le carater qu'il représente.
      Le pipe étant le séparateur wikini.
    4. '|': ou
    5. '(\-\>)' le signe '-' suivit du signe '>'
      La fleche '->' étant le séparateur spip.
Here things may look quite hard.
The used Regular expression is here a bit longer than it was on our previous examples.
We gonna split analyse it,
by the way, keep in mind that for your own applications,
your free to not use such a long expression,
it's often much more easy to split it, in order to proceed step by step.
\[(\S+?)(\s+|\||(\-\>))([^\]]+)\])
  1. \[ : as you already now '\' do not interpret next caracter, for instance '[' we are going to care about a string begining by '[' followed with
  2. (\S+?): any caracter wich isn't a space '\S'. one or several times: '+'. But don't be to grindy' '?', let moderate the '+' when an other rules of or expression is satisfied.
    We put it betwen'(' et ')', wich will, first of all, let us give an order of prioriti to its content (this i belive you know how it works ;-))
    but will let us as well keep its content on variable '$*', so that we can use it later.
    If we don't care about saving this content, then it'll be more appropriate to use ' >[ ]' instead of '( )'
  3. We leave the first condition when its not anymore true (there is a space) or, thanks to '?', when one of the folowings condition is satisfied:
  4. (\s+|\||(\-\>))
    1. '\s+': one or several space
      space is the separator for mediawiki.
    2. '|': or
    3. '\|': the caracter pipe (once again a caracter preceded by '\' will not be interpreted but consider as the caracter it is.
      Pipe is the separator for wikini.
    4. '|': or
    5. '(\-\>)' the sign '-' followed byt the sign '>'
      the "arrow" '->' is the separator for spip.



Ce script à pour vocation d'offir un test interactif sur l'usages des Expressions Regulière (Regular Expressions, regex, regexp) en Javascript et de demontrer comment editer le contenut d'une textarea sans avoirs recours aux propriétées contenteditable ou designmode.
The purpos of this script is to test interactivaly Regular Expressions (regex, regexp) in Javascript an to demonstrates how to edit the content of a textarea without the need of contenteditable or designmode features.

Get Firefox!license: gnu gplValid XHTML 1.0 TransitionalUne alternative pour vos services internet


Ce travail a été accomplits par Nathan Meurrens pour Cassiopea.
Utilisez le librement sous les conditions de la gpl (voirs le code source pour plus d'informations).
This stuff is from Nathan Meurrens for Cassiopea.
Feel free to use it under the terms of the gpl (see source code fo details).