Atelier visuel de regex

Construisez, importez, expliquez, testez et partagez des regex visuellement.

Guide regex

Regex JavaScript vs PCRE

La syntaxe regex se ressemble entre les moteurs, mais elle n’est pas identique. JavaScript et PCRE partagent beaucoup de fonctionnalités, avec des différences importantes.

Qu’est-ce que PCRE ?

PCRE signifie Perl Compatible Regular Expressions et représente l’un des moteurs regex les plus puissants et les plus répandus.

Il est notamment utilisé dans PHP, de nombreux serveurs web, outils en ligne de commande et applications backend.

Pourquoi les moteurs regex se comportent-ils différemment ?

Même si la syntaxe regex semble similaire d’un langage à l’autre, chaque moteur possède ses propres fonctionnalités et limitations.

Une regex valide en PCRE peut donc échouer en JavaScript, Python ou dans un autre environnement.

JavaScript regex vs PCRE

JavaScript prend en charge la majorité des fonctionnalités courantes, mais ne propose pas toutes les capacités avancées de PCRE.

La récursivité, certaines expressions conditionnelles et certains mécanismes de contrôle du backtracking sont propres à PCRE.

Lookbehind et fonctionnalités modernes

Les moteurs JavaScript modernes prennent désormais en charge les lookbehind, les groupes nommés et les propriétés Unicode.

Cependant, ces fonctionnalités sont apparues plus tard que dans PCRE et leur compatibilité dépend encore de l’environnement utilisé.

Différences de support Unicode

PCRE et JavaScript moderne prennent tous deux en charge Unicode, mais pas toujours avec la même syntaxe ni le même comportement.

Lorsqu’une regex manipule du texte international, des emojis ou des propriétés Unicode, il est conseillé de tester dans plusieurs moteurs.

Pourquoi une regex fonctionne dans un outil de test mais pas dans mon application ?

Tous les outils et langages n’utilisent pas le même moteur regex.

Une expression conçue pour PCRE peut ne pas fonctionner en JavaScript, Python ou dans un autre environnement si certaines fonctionnalités ne sont pas prises en charge.

Quel moteur regex faut-il apprendre ?

Le meilleur moteur regex à apprendre dépend principalement du langage et des outils que vous utilisez au quotidien.

Maîtriser la syntaxe commune aux principaux moteurs permet toutefois de construire une base solide et de s’adapter facilement aux différences.

Fonctionnalités communes

Les deux moteurs supportent les ancres, classes, groupes, alternatives, quantificateurs, lookaheads et lookbehinds.

Les groupes nommés et les patterns Unicode existent aussi, mais les flags et certaines syntaxes peuvent varier.

Forces de PCRE

PCRE supporte des fonctionnalités avancées comme les quantificateurs possessifs et de nombreux flags.

Il est couramment utilisé via PHP avec preg_match, preg_match_all et preg_replace.

~\w++~u
Cet exemple utilise une syntaxe spécifique à un autre moteur regex. Le test rapide JavaScript est donc désactivé.

Comportement JavaScript

Les regex JavaScript s’exécutent directement dans le navigateur, ce qui est idéal pour le test live et la validation d’interface.

Les flags g, i, m, s et u sont les plus courants en JavaScript moderne.

\w+
Test rapide