Les pubs vous déplaisent ? Aller Sans pub Auj.

Convertisseur d'arômes Regex (PCRE / JS / Python / Go)

Promoteur
ANNONCE · Supprimer ?

Panneau de Test

Référence de Syntaxe

ANNONCE · Supprimer ?

Guide

Convertisseur de Saveurs Regex (PCRE / JS / Python / Go)

Convertisseur de Saveurs Regex

Convertissez les expressions régulières entre les saveurs de langages de programmation : PCRE (PHP), JavaScript, Python, Go, Java et Ruby. Convertit automatiquement les groupes nommés, les indicateurs, les références arrière et autres différences de syntaxe. Met en évidence les fonctionnalités incompatibles avec des avertissements clairs. Comprend un panneau de test pour valider votre regex convertie par rapport à des chaînes d'échantillons.

Comment utiliser

Entrez votre motif regex, sélectionnez la saveur source (le langage pour lequel il est écrit) et la saveur cible (le langage vers lequel vous souhaitez convertir). La regex convertie apparaît instantanément avec les indicateurs traduits. Consultez les notes de conversion pour connaître les modifications apportées et les avertissements concernant les fonctionnalités non prises en charge. Utilisez le panneau de test pour valider le motif converti par rapport à un texte d'échantillon.

Caractéristiques

  • 6 Saveurs Regex — PCRE (PHP), JavaScript (ES2018+), Python (module re), Go (regexp), Java (java.util.regex) et Ruby. Convertissez entre n'importe quelle paire.
  • Conversion de Groupes Nommés — Convertit automatiquement entre la syntaxe (?P…) (PCRE/Python/Go) et (?…) (JS/Java/Ruby).
  • Traduction des Indicateurs — Convertit les indicateurs entre les saveurs : /gi (JS) ↔ re.IGNORECASE (Python) ↔ (?i) inline (PCRE/Go) ↔ Pattern.CASE_INSENSITIVE (Java).
  • Conversion de Références Arrière — Références arrière nommées converties : (?P=name) ↔ \k entre les saveurs.
  • Avertissements d'Incompatibilité — Alertes codées par couleur : vert pour les conversions propres, jaune pour les changements de syntaxe, rouge pour les fonctionnalités non prises en charge (par exemple, Go ne prend pas en charge les assertions arrière, JS ne prend pas en charge les groupes atomiques).
  • Panneau de Test — Testez la regex convertie par rapport à des chaînes d'échantillons. Affiche les correspondances, les groupes et le nombre de correspondances en utilisant le moteur RegExp de JavaScript.
  • Référence de Syntaxe — Tableau de référence dé dé dé collapsible montrant les principales différences entre toutes les saveurs : groupes nommés, assertions avant/arrière, indicateurs, classes de caractères, groupes atomiques, prise en charge Unicode.
  • Auto-Conversion — Les résultats sont mis à jour instantanément lorsque vous tapez ou changez de saveur.

Ce qui est Converti

Groupes nommés : Différences de syntaxe (?P) ↔ (?).
Références arrière nommées : (?P=name) ↔ \k ↔ \g{name}.
Indicateurs : Inline (?imsx), suffixe /gi, et constantes spécifiques au langage.
Assertions arrière : Prises en charge dans PCRE/JS/Java, limitées dans Python/Ruby, non prises en charge dans Go.
Groupes atomiques : (?>…) — PCRE/Java/Ruby uniquement ; avertissement pour JS/Python/Go.
Quantificateurs possessifs : a++ — PCRE/Java/Ruby uniquement.
Classes de caractères : \R, \h, \v (spécifiques à PCRE) signalés pour d'autres saveurs.
Commentaires: Syntaxe (?#…) — PCRE/Python uniquement.
Conditionnels : (?(cond)yes|no) — PCRE uniquement.

ANNONCE · Supprimer ?

Pourquoi les saveurs regex diffèrent-elles entre les langages ?

Les implémentations d'expressions régulières ont évolué indépendamment dans les différents langages de programmation. Le moteur regex de Perl (PCRE) est devenu le plus riche en fonctionnalités, ajoutant des groupes nommés, des assertions arrière, des groupes atomiques et d'autres fonctionnalités avancées. D'autres langages ont adopté des sous-ensembles : JavaScript avait initialement des regex de base et a progressivement ajouté des fonctionnalités (groupes nommés dans ES2018, assertions arrière dans ES2018). Le module re de Python utilise la syntaxe (?P) héritée d'une proposition initiale. Go a délibérément choisi un moteur regex plus simple (RE2) qui garantit une correspondance en temps linéaire mais sacrifie des fonctionnalités comme les assertions arrière. Chaque langage a fait des compromis différents entre puissance et performance.

Quelles fonctionnalités regex ne peuvent pas être converties ?

Certaines fonctionnalités existent dans une ou deux saveurs seulement et n'ont pas d'équivalent dans les autres. Les assertions arrière n'existent pas dans le moteur RE2 de Go — il n'y a pas de solution de contournement, seulement une refonte du motif. Les groupes atomiques et les quantificateurs possessifs (PCRE/Java/Ruby) n'ont pas d'équivalent direct dans JavaScript, Python ou Go. Les classes de caractères spécifiques à PCRE comme \R (n'importe quelle fin de ligne), \h (espace horizontal), et \v (espace vertical) doivent être étendues à des équivalents de classe de caractères. Les motifs conditionnels (?(cond)yes|no) sont spécifiques à PCRE. Cet outil vous avertit de ces incompatibilités afin que vous sachiez ce qui nécessite une attention manuelle.

Le panneau de test est-il précis pour toutes les saveurs ?

Le panneau de test utilise le moteur RegExp natif de JavaScript, il teste donc avec précision le comportement des regex JavaScript. Pour les autres saveurs cibles, le test donne une approximation raisonnable mais peut différer dans les cas limites — en particulier concernant la gestion Unicode, le comportement des fins de ligne et les fonctionnalités que JavaScript ne prend pas en charge (comme les groupes atomiques). Pour une utilisation en production, testez toujours votre regex convertie dans le langage cible réel. Le panneau de test est mieux utilisé pour une validation rapide de la correspondance de motifs de base.

Quelle est la différence entre les regex PCRE et JavaScript ?

PCRE (Perl Compatible Regular Expressions, utilisé par PHP) est la saveur la plus riche en fonctionnalités : elle prend en charge les groupes nommés avec (?P), les assertions arrière de longueur variable, les groupes atomiques (?>…), les quantificateurs possessifs (a++), les motifs conditionnels, les motifs récursifs et la portée des indicateurs inline (?i:…). Les regex JavaScript sont plus simples : les groupes nommés utilisent (?), les assertions arrière ont été ajoutées dans ES2018, et il n'y a pas de prise en charge des groupes atomiques, des quantificateurs possessifs ou des conditionnels. PCRE utilise la syntaxe /pattern/flags comme JavaScript mais prend en charge plus d'indicateurs (x pour le mode verbeux, s pour DOTALL). La conversion PCRE → JS nécessite souvent la suppression de fonctionnalités avancées.

Envie d'une expérience sans pub ? Passez à la version sans pub

Installez nos extensions

Ajoutez des outils IO à votre navigateur préféré pour un accès instantané et une recherche plus rapide

Sur Extension Chrome Sur Extension de bord Sur Extension Firefox Sur Extension de l'opéra

Le Tableau de Bord Est Arrivé !

Tableau de Bord est une façon amusante de suivre vos jeux, toutes les données sont stockées dans votre navigateur. D'autres fonctionnalités arrivent bientôt !

ANNONCE · Supprimer ?
ANNONCE · Supprimer ?
ANNONCE · Supprimer ?

Coin des nouvelles avec points forts techniques

Impliquez-vous

Aidez-nous à continuer à fournir des outils gratuits et précieux

Offre-moi un café
ANNONCE · Supprimer ?