回答:
次はどうですか?
0[xX][0-9a-fA-F]+
0で始まり、その後に小文字または大文字のxが続き、その後に0〜9、またはaf、またはAFの範囲の1つ以上の文字が続く式に一致します。
/0x[\da-f]/i
が、それ以外の場合は+1になります。
正確な構文は、正確な要件とプログラミング言語によって異なりますが、基本的には次のとおりです。
/[0-9a-fA-F]+/
より簡単に言えば、i
大文字と小文字を区別しません。
/[0-9a-f]+/i
Rubyを使用できるほど幸運であれば、次のことができます。
/\h+/
編集 -スティーブンシュローダーの回答により、0xビットの理解が間違っていたことがわかり、それに応じて提案を更新しました。0xにも一致させる場合、同等のものは
/0[xX][0-9a-fA-F]+/
/0x[0-9a-f]+/i
/0x[\h]+/i
追加-0xをオプションにする必要がある場合(質問が意味するように):
/(0x)?[0-9a-f]+/i
これは0x
プレフィックスの有無にかかわらず一致します
(?:0[xX])?[0-9a-fA-F]+
MD5の検出(例の1つ)は、次の方法で実行できることに言及する価値があります。
[0-9a-fA-F]{32}
文字列の途中で特定の16進文字を探している場合は、「\ xhh」を使用できます。hhは16進数の文字です。私が試したところ、うまくいきました。私はC ++ Qtのフレームワークを使用していますが、使用する必要のあるフレーバー(php、javascript、python、golangなど)によっては、他の場合でも問題を解決できます。
この回答は、http://ult-tex.net/info/perl/から取得されました。
ケースでは、ユーザーが入力でき、入力中にこれを必要0
と0x
せずに進数をあまりにもではなく、0x
接頭辞:
^0?[xX]?[0-9a-fA-F]*$