9 ответов:
Как насчет следующих?
0[xX][0-9a-fA-F]+соответствует выражению, начинающемуся с 0, за которым следует либо нижний, либо верхний регистр x, а затем один или несколько символов в диапазонах 0-9, или a-f, или A-F
точный синтаксис зависит от ваших точных требований и языка программирования, но в основном:
/[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:]]+/
стоит отметить, что обнаружение с MD5 (который является одним из примеров) может быть сделано с:
[0-9a-fA-F]{32}
просто для записи я бы указал следующее:
/^[xX]?[0-9a-fA-F]{6}$/которая отличается тем, что он проверяет, что он и чтобы содержать шесть допустимых символов и в Нижнем или верхнем регистре x, если у нас есть один.
Если вы ищете определенный шестнадцатеричный символ в середине строки, вы можете использовать "\xhh", где hh-символ в шестнадцатеричном формате. Я пробовал и это работает. Я использую фреймворк для C++ Qt, но он может решать проблемы в других случаях, зависит от вкуса, который вам нужно использовать (php, javascript , python, golang и т. д.).
этот ответ был взят из:http://ult-tex.net/info/perl/
Это гарантирует, что у вас есть не более трех допустимых пар:
(([a-fA-F]|[0-9]){2}){3}любые более или менее трех пар допустимых символов не совпадают.
Comments