DevToolBoxFREE
BlogAdvertise

20 patterns Regex indispensables : exemples prêts à copier-coller

11 min de lecturepar DevToolBox

Arrêtez d'écrire des regex depuis zéro. Voici 20 motifs éprouvés pour validation et extraction.

Testez vos motifs avec notre Regex Tester →

Motifs de validation

1. Email Address

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Correspond à : user@example.com, john.doe+tag@company.co.uk

Ne correspond pas à : user@, @example.com, user@.com

2. URL (HTTP/HTTPS)

^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)$

Correspond à : https://example.com, http://www.site.co.uk/path?q=1

3. Phone Number (International E.164)

^\+[1-9]\d{1,14}$

Correspond à : +14155552671, +442071234567

Pour numéros internationaux. Pour les US, voir motif #4.

4. US Phone Number

^(\+1)?[\s.-]?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$

Correspond à : (415) 555-2671, 415-555-2671, +1 415.555.2671

5. Strong Password

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

Exige : 8+ caractères, majuscule, minuscule, chiffre, caractère spécial.

Correspond à : MyP@ss1word | Ne correspond pas à : password, 12345678

6. IPv4 Address

^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$

Correspond à : 192.168.1.1, 10.0.0.255

Ne correspond pas à : 256.1.1.1, 192.168.1

7. IPv6 Address (Simplified)

^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$

Correspond aux adresses IPv6 complètes comme 2001:0db8:85a3:0000:0000:8a2e:0370:7334

8. Date (YYYY-MM-DD)

^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$

Correspond à : 2026-01-15, 2025-12-31

Ne correspond pas à : 2026-13-01, 2026-00-15

Motifs d'extraction

9. Extract All Emails from Text

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

Avec le flag global (g) pour trouver tous les emails.

10. Extract All URLs from Text

https?:\/\/[^\s<>\"']+

Motif URL plus simple pour l'extraction.

11. Extract HTML Tags

<([a-zA-Z][a-zA-Z0-9]*)\b[^>]*>(.*?)<\/\1>

Capture le nom de balise et le contenu.

Pour du HTML complexe, utilisez un parser comme DOMParser ou cheerio.

12. Extract Numbers from String

-?\d+\.?\d*

Entiers et décimaux, positifs et négatifs. 42, -3.14, 0.5

13. Extract Hashtags

#[a-zA-Z0-9_]+

Correspond à : #javascript, #dev_tools, #React18

Motifs de format

14. Credit Card Number (Basic)

^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12})$

Correspond à : Visa, Mastercard, Amex, Discover.

En production, utilisez un processeur de paiement.

15. Hex Color Code

^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$

Correspond à : #FFF, #FF5733, #FF573380

16. Semantic Version (SemVer)

^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$

Correspond à : 1.0.0, 2.1.3-beta.1, 1.0.0+build.123

17. UUID (Any Version)

^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

Correspond à : f47ac10b-58cc-4372-a567-0e02b2c3d479

Traitement de texte

18. Trim Whitespace (Leading + Trailing)

^\s+|\s+$

Utiliser avec replace pour trim : text.replace(/^\\s+|\\s+$/g, '')

19. Multiple Spaces to Single Space

\s{2,}

Remplacer par un espace : text.replace(/\\s{2,}/g, ' ')

20. Markdown Bold Text

\*\*(.+?)\*\*

Capture le texte entre **.

Utiliser ces motifs en code

// JavaScript
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
emailRegex.test('user@example.com'); // true

// Python
import re
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
re.match(pattern, 'user@example.com')  # Match object

// Java
Pattern pattern = Pattern.compile("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$");
pattern.matcher("user@example.com").matches(); // true

Testez tous ces motifs avec notre Regex Tester →

Questions fréquentes

Ces motifs sont-ils compatibles avec tous les langages ?

Ces motifs utilisent une syntaxe standard compatible avec JS, Python, Java, C#, Go, PHP, Ruby.

Utiliser regex pour valider les emails en production ?

Pour une vérification basique, ces motifs conviennent. La seule vraie validation est l'envoi d'un email de confirmation.

Différence entre quantificateurs gourmands et paresseux ?

Gourmands (*, +, ?) : correspondent au maximum. Paresseux (*?, +?, ??) : au minimum.

Cet article vous a-t-il aidé ?

Stay Updated

Get weekly dev tips and new tool announcements.

No spam. Unsubscribe anytime.

Partner Picks

Sponsor this article

Place your product next to this developer topic with tracked clicks.

Ask about article sponsorship

This site uses cookies for analytics and to display ads. By continuing to browse, you agree. Privacy Policy