Regular Expressions 101

Save & Manage Regex

  • Current Version: 1
  • Save & Share
  • Community Library

Flavor

  • PCRE2 (PHP)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java
  • .NET 7.0 (C#)
  • Rust
  • PCRE (Legacy)
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests
Sponsors
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression
Processing...

Test String

Code Generator

Generated Code

import re regex = re.compile(r"(?<!\d)(\d)(?!\d)", flags=re.MULTILINE) test_str = ("1. 1-1 Prise en main de blender\n" "2. 2-1 Présentation de la sculpture\n" "3. 2-2 Sculpter le visage\n" "4. 2-3 Retopologie : Créer la structure du visage\n" "5. 2-4 Retopologie : Placer les vertices de face\n" "6. 2-5 Retopologie : Placer les vertices de profil\n" "7. 2-6 Finalisation de la tête\n" "8. 2-7 Modéliser et placer les yeux\n" "9. 2-8 Modéliser les cheveux\n" "10. 2-9 Modéliser les cils et sourcils\n" "11. 2-10 Modéliser l'intérieur de la bouche\n" "12. 3-1 Préparer la modélisation du corps\n" "13. 3-2 Modéliser le corps\n" "14. 3-3 Modéliser les pieds\n" "15. 3-4 Modéliser les mains\n" "16. 3-5 Modéliser les doigts partie 1\n" "17. 3-6 Modéliser les doigts partie 2\n" "18. 3-7 Ajuster et préciser les bras\n" "19. 3-8 Ajuster le corps pour préparer le raccord à la tête\n" "20. 3-9 Raccorder le corps à la tête\n" "21. 3-10 Ajuster la tête à l'aide du \"Modifier\" lattice\n" "22. 4-1 Créer le pantalon\n" "23. 4-2 Créer le T-shirt\n" "24. 4-3 Créer les bottes\n" "25. 4-4 Donner de l'épaisseur aux habits\n" "26. 5-1 Texturer le pantalon\n" "27. 5-2 Texturer le T-shirt\n" "28. 5-3 Texturer les bottes\n" "29. 5-4 Texturer les cheveux\n" "30. 5-5 Faire un dégradé sur les cheveux\n" "31. 5-6 Texturer les cils/sourcils\n" "32. 5-7 Texturer les yeux\n" "33. 5-8 Préparer le personnage au texturing\n" "34. 5-9 Dépliage UV du personnage\n" "35. 5-10 Préparer les images pour le texture paint\n" "36. 5-11 Peindre le corps\n" "37. 5-12 Peindre le visage\n" "38. 5-13 Peindre les mains\n" "39. 5-14 Peindre l'intérieur de la bouche et les lèvres\n" "40. 5-15 Reliefs et spécularité du visage\n" "41. 6-1 Parties délavées du pantalon\n" "42. 6-2 Ajouter un Fresnel aux textures\n" "43. 7-1 Créer l'armature\n" "44. 7-2 Appliquer la symétrie du squelette\n" "45. 7-3 Créer un contrôleur \"Master\"\n" "46. 7-4 Créer une IK pour les jambes\n" "47. 7-5 Créer une IK pour les bras\n" "48. 7-6 Créer un contrôleur pour le regard\n" "49. 7-7 Créer un contrôleur pour plier les doigts\n" "50. 7-8 Appliquer les contrôleurs en symétrie\n" "51. 7-9 Connecter l'armature au personnage\n" "52. 7-10 Customiser les contrôleurs genoux et coudes\n" "53. 7-11 Customiser le contrôleur \"Master\"\n" "54. 7-12 Customiser les contrôleurs IK\n" "55. 7-13 Customiser les contrôleurs de la colonne vertébrale\n" "56. 7-14 Customiser les contrôleurs épaules, cou, tête\n" "57. 7-15 Appliquer des couleurs aux groupes de \"bones\"\n" "58. 7-16 Customiser les contrôleurs des doigts\n" "59. 7-17 Faire suivre le regard\n" "60. 7-18 Automatiser la fermeture des doigts\n" "61. 7-19 Créer des drivers pour plier les doigts\n" "62. 7-20 Corrections de la fermeture du poing\n" "63. 7-21 Réduire la résolution du pantalon en conservant les détails dans la texture\n" "64. 7-22 Réduire la résolution du T-shirt en conservant les détails dans la texture\n" "65. 7-23 Préparer le personnage pour éviter les éventuels défauts liés aux habits\n" "66. 8-1 Créer les expressions faciales\n" "67. 8-2 Fermer les yeux\n" "68. 8-3 Créer un driver pour la fermeture des yeux\n" "69. 8-4 Finaliser l'expression de \"colère\" et lui créer un driver\n" "70. 8-5 Faire briller les yeux\n" "71. 9-1 Connecter les habits à l'armature et peindre les influences des os\n" "72. 9-2 Créer le \"Kameha\"\n" "73. 9-3 Placer la première pose du personnage\n" "74. 9-4 Créer le mouvement de caméra du premier plan de notre animation\n" "75. 9-5 Affiner les réglages et faire sourire le personnage\n" "76. 9-6 Animer le mouvement du personnage\n" "77. 9-7 Correction bug possible de texture des yeux\n" "78. 9-8 Animer le \"Kameha\"\n" "79. 9-9 Placer et animer la 2ème caméra\n" "80. 9-10 Créer l'effet tremblement de la caméra\n" "81. 9-11 Créer le mouvement des cheveux\n" "82. 10-1 Créer le fond et les lumières\n" "83. 10-2 Texturer le fond et régler la profondeur de champs des caméras\n" "84. 10-3 Réglages de rendu\n" "85. 10-4 Point sur l'export et explications lumières volumétriques\n" "79. 9-9 Placer et animer[xnmjklxx]la 2ème caméra\n" "80. 9-10 Créer l'effet tremblement de la caméra\n" "81. 9-11 Créer le mouvement des cheveux\n" "82. 10-1 Créer le[xwerrxxxxx]fond et les lumières\n" "83. 10-2[xx]Texturer le fond et régler la profondeur de champs des caméras\n" "84. 10-3 Réglages de rendu\n" "85. 10-4 Point[xxxxtzzxxx]sur l'export et explications ") matches = regex.finditer(test_str) for match_num, match in enumerate(matches, start=1): print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}") for group_num, group in enumerate(match.groups(), start=1): print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")

Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html