Inverseur de Texte : Inverser le Texte et Retourner les Caractères Instantanément
Outil en ligne gratuit pour inverser instantanément n'importe quelle chaîne de caractères. Retournez les caractères, vérifiez les palindromes et créez du texte à l'envers. Fonctionne avec Unicode, emojis et toutes les langues.
Outil d'Inversion de Texte
Saisissez ou collez n'importe quel texte ci-dessous pour inverser instantanément l'ordre des caractères. Voyez les résultats en temps réel pendant que vous tapez.
Documentation
Qu'est-ce qu'un outil d'inversion de texte ?
Un inverseur de texte (également appelé outil de texte inversé) inverse l'ordre des caractères de votre texte—transformant "Hello World" en "dlroW olleH". Vous trouverez cela étonnamment utile pour tout, de la vérification des palindromes à la création de texte miroir pour des travaux de design.
L'outil fonctionne en temps réel : collez ou tapez votre texte, et vous le verrez instantanément inversé. Ce qui rend l'inversion de texte intéressante, c'est qu'elle est conceptuellement très simple (il suffit de lire à l'envers), mais elle permet des applications véritablement utiles en programmation, cryptographie et analyse de texte.
Voici le point important—j'ai vu des développeurs utiliser l'inversion de texte pour le débogage, des designers pour des effets visuels, et des éducateurs pour enseigner la manipulation de chaînes de caractères. Un scénario courant est lorsque vous travaillez sur des algorithmes de détection de palindromes et que vous devez rapidement vérifier votre logique avec des cas de test.
Comment utiliser l'inverseur de texte
Utiliser cet outil d'inversion de texte se fait en trois étapes simples :
- Entrez votre texte dans le champ de saisie — tapez directement ou collez depuis votre presse-papiers
- Observez la magie tandis que le texte inversé apparaît instantanément ci-dessous (pas besoin de cliquer sur quoi que ce soit)
- Copiez le résultat en un seul clic à l'aide du bouton de copie
L'outil traite tout en temps réel, ce qui signifie que vous pouvez expérimenter et voir les résultats au fur et à mesure que vous tapez. Fonctionne avec tous les jeux de caractères — anglais, emojis, symboles spéciaux, même les caractères Unicode de langues comme le japonais ou l'arabe.
Formule et Algorithme d'Inversion de Texte
Voici comment fonctionne l'inversion de texte mathématiquement. Pour une chaîne de longueur avec des caractères , la chaîne inversée est :
En pratique, les programmeurs implémentent cela en utilisant trois approches principales :
- Inversion de Tableau : Diviser la chaîne en caractères, inverser le tableau, puis les rejoindre. Le plus simple et lisible.
- Technique des Deux Pointeurs : Commencer par les deux extrémités, échanger les caractères en se déplaçant vers le milieu. Économe en mémoire lorsque vous pouvez modifier en place.
- Approche à Base de Pile : Empiler les caractères sur une pile (structure LIFO), puis les dépiler. Cela inverse naturellement l'ordre—et c'est un excellent exemple d'enseignement des structures de données.
Caractéristiques de performance : L'inversion de texte s'exécute en complexité temporelle (linéaire) car chaque caractère est traité exactement une fois. La complexité spatiale est également car vous devez stocker la chaîne inversée. Pour la plupart des utilisations pratiques avec du texte de moins de quelques mégaoctets, les performances sont instantanées.
Un point à noter—si vous inversez de très grands fichiers texte (comme des journaux ou des ensembles de données), vous pourriez envisager des approches de streaming pour éviter de charger tout en mémoire à la fois.
Processus de Renversement de Texte Étape par Étape
Laissez-moi vous expliquer exactement comment l'algorithme de renversement traite votre texte :
- Commencer avec un conteneur de résultat vide
- Lire à partir du dernier caractère de votre entrée, en se déplaçant vers l'arrière
- Ajouter chaque caractère au résultat au fur et à mesure
- S'arrêter une fois atteint le premier caractère
- Retourner la chaîne inversée complétée
Exemple pratique avec "Hello, World!" :
1Entrée : "Hello, World!"
2Étape 1 : Commencer avec un résultat vide : ""
3Étape 2 : Prendre le dernier caractère "!" → résultat = "!"
4Étape 3 : Prendre "d" → résultat = "!d"
5Étape 4 : Prendre "l" → résultat = "!dl"
6Étape 5 : Continuer pour chaque caractère...
7Sortie finale : "!dlroW ,olleH"
8L'algorithme traite chaque caractère de manière identique — qu'il s'agisse d'une lettre, d'un nombre, de la ponctuation, d'un espace ou d'un emoji. Tout est préservé dans la sortie inversée. Ce traitement cohérent explique pourquoi il fonctionne de manière fiable à travers différentes langues et jeux de caractères.
Cas limites à connaître
Lorsque vous travaillez avec l'inversion de texte, vous rencontrerez quelques cas limites intéressants :
Chaînes vides : Inverser une chaîne vide vous donne... une chaîne vide. Logique, non ? Il n'y a rien à inverser.
Caractère unique : Inversez "A" et vous obtenez "A". C'est son propre inverse, comme tous les caractères uniques.
Unicode et emojis : C'est là que les choses deviennent intéressantes. L'algorithme gère correctement Unicode, y compris les emojis, les caractères japonais, l'écriture arabe et autres textes non latins. Testez avec "こんにちは 🌍" et vous verrez que ça fonctionne correctement.
Espaces et caractères spéciaux : Espaces, tabulations, sauts de ligne, ponctuation—tout est inversé exactement tel quel. "Hello World" (avec 3 espaces) devient "dlroW olleH" (toujours 3 espaces).
Texte très long : Pour des entrées extrêmement volumineuses (pensez à des mégaoctets de texte), vous êtes limité par la mémoire disponible. La plupart des systèmes modernes gèrent cela sans problème jusqu'à plusieurs Mo, mais si vous traitez des fichiers de plusieurs gigaoctets, vous voudrez une solution de streaming plutôt que de tout charger en mémoire.
Une chose que j'ai remarquée : les caractères combinants et les clusters de graphèmes peuvent parfois se comporter de manière inattendue. Par exemple, les emojis avec modificateurs de ton de peau sont techniquement plusieurs points de code Unicode. La plupart des implémentations gèrent cela correctement, mais il est bon de tester avec votre cas d'utilisation spécifique si vous travaillez avec des Unicode complexes.
Cas d'utilisation réels de l'inversion de texte
Vous seriez surpris de la fréquence des inversions de texte en pratique. Voici des scénarios où je l'ai vu utilisé :
Programmation et Développement
Vérification de palindrome : Lorsque vous devez vérifier si un mot se lit de la même manière dans les deux sens, vous l'inversez et comparez. Pensez à "racecar" → "racecar" (correspond = palindrome).
Pratique d'algorithmes de chaînes : L'inversion de texte est un problème classique d'entretien de codage qui teste votre compréhension de la manipulation de chaînes et des structures de données de base.
Démonstrations d'implémentation de pile : Inverser du texte est l'exemple parfait pour enseigner le comportement LIFO (Dernier Entré-Premier Sorti) car une pile inverse naturellement l'ordre.
Cryptographie et Sécurité
Encodage de base : Bien que non sécurisé en soi, l'inversion de texte est parfois utilisée comme une couche dans des schémas d'encodage multi-étapes. Il s'agit plus d'obfuscation que de cryptage réel.
Systèmes de défi-réponse : Certains systèmes d'authentification utilisent des chaînes inversées dans leur processus de vérification.
Applications Créatives et Éducatives
Jeux de mots et énigmes : Créez des défis où les joueurs identifient des mots inversés ou décodent des messages. Populaire dans les salles d'évasion et les applications de puzzles.
Effets d'écriture miroir : Les designers utilisent du texte inversé pour les logos, les effets artistiques ou les designs visuels qui incorporent la réflexion.
Outil d'enseignement : Lorsqu'on explique la manipulation de chaînes aux débutants, l'inversion de texte est suffisamment simple à comprendre mais assez complexe pour démontrer des concepts importants comme l'itération et la manipulation de tableaux.
Analyse de Texte
Recherche linguistique : Les chercheurs étudiant les modèles de langage analysent parfois le texte dans les deux sens pour identifier des caractéristiques structurelles.
Détection de motifs : Vérifier la symétrie dans le texte ou trouver des séquences inversées intégrées dans des ensembles de données plus larges.
Différents Types d'Inversion de Texte
L'inversion caractère par caractère n'est pas votre seule option. Selon ce que vous essayez d'accomplir, ces alternatives pourraient mieux fonctionner :
Inversion de mots : Gardez chaque mot intact mais inversez leur ordre. Utile pour l'apprentissage des langues et certaines tâches de traitement de texte.
- Exemple : "Bonjour Monde" → "Monde Bonjour"
Inversion de phrases : Inversez l'ordre des phrases tout en préservant l'ordre des mots dans chaque phrase.
- Exemple : "Bonjour Monde. Comment allez-vous ?" → "Comment allez-vous ? Bonjour Monde."
Inversion sélective : Inversez uniquement des parties spécifiques selon vos critères—peut-être seulement les voyelles, ou seulement les mots de plus de 5 caractères. Excellent pour créer des énigmes de mots ou analyser des motifs.
- Exemple : Inverser seulement les voyelles dans "Bonjour Monde" → "Bunjour Mende"
Inversion phonétique : Utilisée dans la recherche linguistique, elle inverse les sons plutôt que les lettres. Nécessite d'abord une transcription phonétique.
Inversion au niveau des bits : Inverse la représentation binaire des caractères. On le voit dans certaines opérations cryptographiques et manipulations de données de bas niveau.
L'Histoire de l'Inversion de Texte
L'inversion de texte existe depuis bien plus longtemps que vous ne le pensez—s'étendant des systèmes d'écriture anciens à l'informatique moderne.
Écriture Ancienne et Texte en Miroir
Les civilisations anciennes ont expérimenté l'écriture directionnelle bien avant l'existence des ordinateurs. Les Grecs et les Égyptiens utilisaient parfois le style "boustrophédon", où les lignes alternaient de direction—de gauche à droite, puis de droite à gauche, comme un bœuf labourant un champ (ce que signifie "boustrophédon").
Léonard de Vinci a célèbrement rempli ses carnets d'écriture en miroir, où le texte apparaît inversé. Les historiens débattent si c'était pour le secret, parce qu'il était gaucher et que c'était plus confortable, ou simplement pour éviter les taches d'encre. Quelle que soit la raison, ses carnets démontrent que l'inversion de texte a été utilisée comme technique de codage pendant des siècles.
L'Ère Informatique
Lorsque les ordinateurs sont apparus dans les années 1950-60, la manipulation de chaînes de caractères est devenue un exercice de programmation fondamental. L'inversion de texte était l'un de ces problèmes classiques que chaque programmeur apprenait, aux côtés du tri et de la recherche.
Ce qui la rendait particulièrement intéressante : le développement des structures de données de pile se connectait naturellement à l'inversion de texte. Le comportement LIFO (Dernier Entré-Premier Sorti) d'une pile inverse automatiquement l'ordre—en poussant "BONJOUR" caractère par caractère sur une pile, puis en les retirant, on obtient "RUOJNOB". Cette relation élégante a fait de l'inversion de texte un exemple classique pour enseigner les structures de données.
Applications Modernes
Aujourd'hui, vous trouverez des algorithmes d'inversion de texte travaillant en coulisses dans :
- Compilateurs et analyseurs : Utilisés dans l'analyse syntaxique et l'évaluation d'expressions
- Algorithmes de correspondance de chaînes : Comme l'algorithme Boyer-Moore qui traite les motifs de droite à gauche
- Cryptographie : Comme blocs de construction dans des schémas de chiffrement plus complexes
- Traitement du langage naturel : Analyse des modèles linguistiques, détection des palindromes et étude de la structure textuelle
La simplicité de l'algorithme (c'est l'un des premiers que l'on apprend) combinée à son utilité pratique garantit sa pertinence des décennies après sa première implémentation.
Exemples de Code : Inversion de Texte dans Différentes Langues
Voici comment implémenter l'inversion de texte dans des langages de programmation populaires. Chaque exemple montre l'algorithme de base et son utilisation pratique :
1' Fonction VBA Excel pour l'Inversion de Texte
2Function InvertText(inputText As String) As String
3 Dim i As Integer
4 Dim result As String
5
6 result = ""
7 For i = Len(inputText) To 1 Step -1
8 result = result & Mid(inputText, i, 1)
9 Next i
10
11 InvertText = result
12End Function
13' Utilisation dans une cellule :
14' =InvertText("Bonjour, Monde !")
151def invert_text(input_text):
2 """Inverser l'ordre des caractères dans une chaîne."""
3 return input_text[::-1]
4
5## Exemple d'utilisation :
6
7texte_original = "Hello, World!"
8texte_inverse = inverser_texte(texte_original)
9print(f"Original : {texte_original}")
10print(f"Inversé : {texte_inverse}")
11
12# Gestion des caractères Unicode
13texte_unicode = "こんにちは世界! 🌍"
14unicode_inverse = inverser_texte(texte_unicode)
15print(f"Original Unicode : {texte_unicode}")
16print(f"Inversé Unicode : {unicode_inverse}")
171function inverserTexte(texteEntree) {
2 return texteEntree.split('').reverse().join('');
3}
4
5// Exemple d'utilisation :
6const texteOriginal = "Hello, World!";
7const texteInverse = inverserTexte(texteOriginal);
8console.log(`Original : ${texteOriginal}`);
9console.log(`Inversé : ${texteInverse}`);
10
11// Gestion des chaînes vides
12console.log(`Chaîne vide inversée : "${inverserTexte("")}"`);
13
14// Gestion des caractères Unicode
15const texteUnicode = "こんにちは世界! 🌍";
16console.log(`Original Unicode : ${texteUnicode}`);
17console.log(`Inversé Unicode : ${inverserTexte(texteUnicode)}`);
181public class InverseurTexte {
2 public static String inverserTexte(String texteEntree) {
3 return new StringBuilder(texteEntree).reverse().toString();
4 }
5
6 public static void main(String[] args) {
7 String texteOriginal = "Hello, World!";
8 String texteInverse = inverserTexte(texteOriginal);
9
10 System.out.println("Original : " + texteOriginal);
11 System.out.println("Inversé : " + texteInverse);
12
13 // Gestion des caractères Unicode
14 String texteUnicode = "こんにちは世界! 🌍";
15 String unicodeInverse = inverserTexte(texteUnicode);
16 System.out.println("Original Unicode : " + texteUnicode);
17 System.out.println("Inversé Unicode : " + unicodeInverse);
18 }
19}
201inverser_texte <- function(texte_entree) {
2 # Convertir en vecteur de caractères, inverser et concaténer
3 paste(rev(strsplit(texte_entree, "")[[1]]), collapse = "")
4}
5
6# Exemple d'utilisation
7texte_original <- "Hello, World!"
8texte_inverse <- inverser_texte(texte_original)
9cat("Original :", texte_original, "\n")
10cat("Inversé :", texte_inverse, "\n")
111function texteInverse = inverserTexte(texteEntree)
2 % Fonction pour inverser l'ordre des caractères dans une chaîne
3 texteInverse = texteEntree(end:-1:1);
4end
5
6% Exemple d'utilisation
7texteOriginal = 'Hello, World!';
8texteInverse = inverserTexte(texteOriginal);
9fprintf('Original : %s\n', texteOriginal);
10fprintf('Inversé : %s\n', texteInverse);
111#include <iostream>
2#include <string>
3#include <algorithm>
4
5std::string inverserTexte(const std::string& texteEntree) {
6 std::string resultat = texteEntree;
7 std::reverse(resultat.begin(), resultat.end());
8 return resultat;
9}
10
11int main() {
12 std::string texteOriginal = "Hello, World!";
13 std::string texteInverse = inverserTexte(texteOriginal);
14
15 std::cout << "Original : " << texteOriginal << std::endl;
16 std::cout << "Inversé : " << texteInverse << std::endl;
17
18 // Gestion des chaînes vides
19 std::cout << "Chaîne vide inversée : \"" << inverserTexte("") << "\"" << std::endl;
20
21 return 0;
22}
231def inverser_texte(texte_entree)
2 texte_entree.reverse
3end
4
5# Exemple d'utilisation
6texte_original = "Hello, World!"
7texte_inverse = inverser_texte(texte_original)
8puts "Original : #{texte_original}"
9puts "Inversé : #{texte_inverse}"
10
11# Gestion des caractères Unicode
12texte_unicode = "こんにちは世界! 🌍"
13unicode_inverse = inverser_texte(texte_unicode)
14puts "Original Unicode : #{texte_unicode}"
15puts "Inversé Unicode : #{unicode_inverse}"
161<?php
2function inverserTexte($texteEntree) {
3 return strrev($texteEntree);
4}
5
6// Exemple d'utilisation
7$texteOriginal = "Hello, World!";
8$texteInverse = inverserTexte($texteOriginal);
9echo "Original : $texteOriginal\n";
10echo "Inversé : $texteInverse\n";
11
12// Gestion des caractères Unicode
13$texteUnicode = "こんにちは世界! 🌍";
14$unicodeInverse = inverserTexte($texteUnicode);
15echo "Original Unicode : $texteUnicode\n";
16echo "Inversé Unicode : $unicodeInverse\n";
17?>
181fn inverser_texte(texte_entree: &str) -> String {
2 texte_entree.chars().rev().collect()
3}
4
5fn main() {
6 let texte_original = "Hello, World!";
7 let texte_inverse = inverser_texte(texte_original);
8
9 println!("Original : {}", texte_original);
10 println!("Inversé : {}", texte_inverse);
11
12 // Gestion des caractères Unicode
13 let texte_unicode = "こんにちは世界! 🌍";
14 let unicode_inverse = inverser_texte(texte_unicode);
15 println!("Original Unicode : {}", texte_unicode);
16 println!("Inversé Unicode : {}", unicode_inverse);
17}
181using System;
2
3class InverseurTexte
4{
5 public static string InverserTexte(string texteEntree)
6 {
7 char[] tableauCaracteres = texteEntree.ToCharArray();
8 Array.Reverse(tableauCaracteres);
9 return new string(tableauCaracteres);
10 }
11
12 static void Main()
13 {
14 string texteOriginal = "Hello, World!";
15 string texteInverse = InverserTexte(texteOriginal);
16
17 Console.WriteLine($"Original : {texteOriginal}");
18 Console.WriteLine($"Inversé : {texteInverse}");
19
20 // Gestion des chaînes vides
21 Console.WriteLine($"Chaîne vide inversée : \"{InverserTexte("")}\"");
22
23 // Gestion des caractères Unicode
24 string texteUnicode = "こんにちは世界! 🌍";
25 string unicodeInverse = InverserTexte(texteUnicode);
26 Console.WriteLine($"Original Unicode : {texteUnicode}");
27 Console.WriteLine($"Inversé Unicode : {unicodeInverse}");
28 }
29}
301package main
2
3import (
4 "fmt"
5)
6
7func inverserTexte(texteEntree string) string {
8 runes := []rune(texteEntree)
9 for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
10 runes[i], runes[j] = runes[j], runes[i]
11 }
12 return string(runes)
13}
14
15func main() {
16 texteOriginal := "Hello, World!"
17 texteInverse := inverserTexte(texteOriginal)
18
19 fmt.Printf("Original : %s\n", texteOriginal)
20 fmt.Printf("Inversé : %s\n", texteInverse)
21
22 // Gestion des caractères Unicode
23 texteUnicode := "こんにちは世界! 🌍"
24 unicodeInverse := inverserTexte(texteUnicode)
25 fmt.Printf("Original Unicode : %s\n", texteUnicode)
26 fmt.Printf("Inversé Unicode : %s\n", unicodeInverse)
27}
281func inverserTexte(_ texteEntree: String) -> String {
2 return String(texteEntree.reversed())
3}
4
5// Exemple d'utilisation
6let texteOriginal = "Hello, World!"
7let texteInverse = inverserTexte(texteOriginal)
8
9print("Original : \(texteOriginal)")
10print("Inversé : \(texteInverse)")
11
12// Gestion des caractères Unicode
13let texteUnicode = "こんにちは世界! 🌍"
14let unicodeInverse = inverserTexte(texteUnicode)
15print("Original Unicode : \(texteUnicode)")
16print("Inversé Unicode : \(unicodeInverse)")
17Conseils d'optimisation des performances
Si vous travaillez avec l'inversion de texte dans du code de production, voici des facteurs de performance à prendre en compte :
Utilisation de la mémoire : Créer une copie inversée nécessite une mémoire égale à la taille de votre entrée. Pour les chaînes de petite à moyenne taille (moins de 1 Mo), cela est négligeable. Pour les textes plus volumineux, vous doublez temporairement l'utilisation de la mémoire.
Inversion sur place : Des langages comme C, C++ et Rust vous permettent d'inverser directement des tableaux de caractères en mémoire sans créer de copie. Cela réduit de moitié l'utilisation de la mémoire, mais ne fonctionne qu'avec des chaînes mutables. De nombreux langages (Python, JavaScript, Java) utilisent des chaînes immuables, donc vous êtes obligé d'en créer une nouvelle.
Gestion Unicode : C'est là que les choses deviennent complexes. Les caractères Unicode multi-octets nécessitent un traitement approprié, sinon vous corromprez l'encodage. La plupart des bibliothèques standard modernes gèrent cela correctement, mais si vous écrivez du code de bas niveau ou travaillez directement avec des tableaux d'octets, soyez prudent. Testez avec des emojis et des scripts non latins pour vérifier.
Streaming pour les fichiers volumineux : Si vous inversez des fichiers journaux ou des ensembles de données de plusieurs gigaoctets, ne chargez pas tout en mémoire. Utilisez une approche de streaming — lisez des morceaux depuis la fin, écrivez-les au fur et à mesure. Selon la Norme technique Unicode #18, la gestion des clusters de graphèmes nécessite une attention particulière pour une détection correcte des limites de texte.
Parallélisation : Pour des chaînes extrêmement longues, vous pouvez théoriquement paralléliser l'inversion (diviser en morceaux, inverser chacun, combiner). En pratique, la surcharge n'en vaut généralement pas la peine, sauf si vous traitez des ensembles de données massifs et disposez de ressources de calcul suffisantes.
Questions Fréquentes
Comment inverser du texte en ligne ?
Collez ou saisissez simplement votre texte dans le champ de saisie ci-dessus. L'outil l'inverse automatiquement en temps réel - pas besoin de cliquer sur des boutons. Copiez le résultat en un clic.
Quelle est la différence entre l'inversion de texte et l'inversion de mots ?
L'inversion de texte (inversion de caractères) retourne les caractères individuels : « Hello World » → « dlroW olleH ». L'inversion de mots conserve chaque mot intact mais inverse leur ordre : « Hello World » → « World Hello ». Cet outil effectue une inversion de caractères.
Cet outil peut-il gérer les emojis et les caractères Unicode ?
Oui. L'outil gère correctement tous les caractères Unicode, y compris les emojis, les textes chinois/japonais/coréens, les scripts arabes, les symboles spéciaux et les caractères combinés. Essayez avec « こんにちは 🌍 » pour voir par vous-même.
L'inversion de texte est-elle identique à l'écriture en miroir ?
Ils sont liés mais pas identiques. L'inversion de caractères (ce que fait cet outil) inverse simplement l'ordre des caractères. L'écriture en miroir retourne horizontalement les caractères pour qu'ils apparaissent comme des reflets. Pour lire l'écriture en miroir, vous avez besoin d'un miroir réel ou d'un retournement horizontal.
Pourquoi aurais-je besoin d'inverser du texte ?
Les utilisations courantes incluent : vérifier les palindromes, créer un encodage simple pour des énigmes, générer des données de test pour la programmation, créer des effets de texte artistiques, enseigner des algorithmes de chaînes et déboguer du code de traitement de texte.
Inverser deux fois un texte me redonne-t-il le texte original ?
Oui. L'inversion de texte est sa propre opération inverse. Si vous inversez « Hello » pour obtenir « olleH », puis inversez « olleH », vous obtenez à nouveau « Hello ». Mathématiquement, on appelle cela une involution.
Quelle est la vitesse d'inversion de texte ?
C'est très rapide - complexité temporelle linéaire O(n) où n est la longueur du texte. Pour un texte typique (quelques paragraphes), le traitement est instantané. Même pour des textes très longs (milliers de mots), les ordinateurs modernes le gèrent en millisecondes.
Puis-je inverser du texte dans Excel ou Google Sheets ?
Oui, mais vous avez besoin d'une fonction personnalisée car il n'existe pas de fonction d'inversion intégrée. Consultez la section d'exemples de code ci-dessus pour les implémentations en VBA Excel et autres langages de programmation.
Références techniques
-
Knuth, D. E. (1997). L'art de la programmation informatique, Volume 1 : Algorithmes fondamentaux (3e éd.). Addison-Wesley Professional.
-
Sedgewick, R., & Wayne, K. (2011). Algorithmes (4e éd.). Addison-Wesley Professional.
-
Unicode Consortium. Norme technique Unicode #18 : Expressions régulières Unicode. Disponible sur : https://unicode.org/reports/tr18/
-
MDN Web Docs. Référence des méthodes de chaîne. Mozilla Developer Network. Disponible sur : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/String
-
Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction aux algorithmes (3e éd.). MIT Press.