Как работает шаблон
| Часть | Значение |
|---|---|
[0-9a-fA-F]{8} | Восемь шестнадцатеричных цифр |
[1-8][0-9a-fA-F]{3} | Третья группа начинается с версии, 1–8 |
[89abAB][0-9a-fA-F]{3} | Четвёртая группа начинается с варианта по RFC 9562: 8, 9, a или b |
[0-9a-fA-F]{12} | Двенадцать шестнадцатеричных цифр в конце |
- | Дефисы на позициях 8-4-4-4-12 |
Примеры кода
JavaScript
const re = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}', value))PHP
preg_match('/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/', $value) === 1;
Примечания и ограничения
Чтобы принимать только UUID версии 4 (случайные), замените [1-8] на 4. Тестовые значения можно создать с помощью генератора UUID.
Тестер регулярных выражений
Введите шаблон и смотрите, как совпадения подсвечиваются прямо в тестовом тексте.