Відповіді:
Як щодо наступного?
0[xX][0-9a-fA-F]+
Збіг вирази, починаючи з 0, слід або з нижнього, або з великого регістру х, а з ним одного або більше символів у діапазонах 0-9, або af, або AF
/0x[\da-f]/i, але в іншому випадку +1.
Точний синтаксис залежить від ваших точних вимог та мови програмування, але в основному:
/[0-9a-fA-F]+/
або простіше кажучи, iробить це нечутливим до регістру.
/[0-9a-f]+/i
Якщо вам пощастило використовувати Ruby, ви можете:
/\h+/
EDIT - Відповідь Стівена Шредера дала мені зрозуміти, що я розумію, що біт 0x був неправильним, тому я відповідно оновив свої пропозиції. Якщо ви також хочете відповідати 0x, еквіваленти є
/0[xX][0-9a-fA-F]+/
/0x[0-9a-f]+/i
/0x[\h]+/i
ДОДАТИ БІЛЬШЕ - Якщо 0x потрібно необов’язково (як випливає з питання):
/(0x)?[0-9a-f]+/i
Це не велика справа, але більшість двигунів-регексів підтримують класи символів POSIX, і є [:xdigit:]можливість узгодження шістнадцяткових символів, що простіше, ніж звичайні 0-9a-fA-Fречі.
Отже, регулярний вираз за запитом (тобто з необов'язковим 0x) є:/(0x)?[[:xdigit:]]+/
Це збігатиметься з 0xпрефіксом або без нього
(?:0[xX])?[0-9a-fA-F]+
Варто зазначити, що виявити MD5 (який є одним із прикладів) можна виконати за допомогою:
[0-9a-fA-F]{32}
Якщо ви використовуєте Perl або PHP, ви можете їх замінити
[0-9a-fA-F]
з:
[[:xdigit:]]
Якщо ви шукаєте конкретного шістнадцяткового символу посередині рядка, ви можете використовувати "\ xhh", де hh - символ у шістнадцятковій кількості. Я спробував, і це працює. Я використовую фреймворк для C ++ Qt, але це може вирішити проблеми в інших випадках, залежить від аромату, який потрібно використовувати (php, javascript, python, golang тощо).
Ця відповідь була взята від: http://ult-tex.net/info/perl/
Це гарантує, що у вас не більше трьох дійсних пар:
(([a-fA-F]|[0-9]){2}){3}
Не збігаються будь-які більше або менше трьох пар дійсних символів.
Якщо вам це знадобиться на вході, де користувач може ввести 0і 0xтеж, але не шістнадцятковий номер без 0xпрефікса:
^0?[xX]?[0-9a-fA-F]*$
Інший приклад: шістнадцяткові значення кольорів css починаються зі знака фунта або хеша (#), потім шість знаків, які можуть бути або цифрою, або літерою між A і F, включно.
^#[0-9a-fA-F]{6}