Jak utworzyć wyrażenie regularne, które wykrywa liczby szesnastkowe w tekście?
Na przykład „0x0f4”, „0acdadecf822eeff32aca5830e438cb54aa722e3” i „8BADF00D”.
Jak utworzyć wyrażenie regularne, które wykrywa liczby szesnastkowe w tekście?
Na przykład „0x0f4”, „0acdadecf822eeff32aca5830e438cb54aa722e3” i „8BADF00D”.
Odpowiedzi:
A co z następującymi?
0[xX][0-9a-fA-F]+
Dopasowuje wyrażenie zaczynające się od 0, po którym następuje mała lub duża litera x, po którym następuje jeden lub więcej znaków z zakresu 0-9, lub af lub AF
/0x[\da-f]/i
+1.
Dokładna składnia zależy od twoich dokładnych wymagań i języka programowania, ale zasadniczo:
/[0-9a-fA-F]+/
lub po prostu i
sprawia , że wielkość liter nie jest rozróżniana.
/[0-9a-f]+/i
Jeśli masz szczęście, że używasz Rubiego, możesz:
/\h+/
EDYCJA - odpowiedź Stevena Schroedera uświadomiła mi, że moje rozumienie bitu 0x było błędne, więc odpowiednio zaktualizowałem moje sugestie. Jeśli chcesz również dopasować 0x, odpowiednikami są
/0[xX][0-9a-fA-F]+/
/0x[0-9a-f]+/i
/0x[\h]+/i
DODANO WIĘCEJ - Jeśli 0x musi być opcjonalne (jak sugeruje pytanie):
/(0x)?[0-9a-f]+/i
Będzie pasować z lub bez 0x
prefiksu
(?:0[xX])?[0-9a-fA-F]+
Warto wspomnieć, że wykrycie MD5 (co jest jednym z przykładów) można wykonać za pomocą:
[0-9a-fA-F]{32}
Jeśli używasz Perla lub PHP, możesz zastąpić
[0-9a-fA-F]
z:
[[:xdigit:]]
Jeśli szukasz określonego znaku szesnastkowego w środku ciągu, możesz użyć „\ xhh”, gdzie hh to znak szesnastkowy. Próbowałem i działa. Używam frameworka dla C ++ Qt, ale może rozwiązać problemy w innych przypadkach, w zależności od smaku, którego potrzebujesz (php, javascript, python, golang itp.).
Ta odpowiedź pochodzi z: http://ult-tex.net/info/perl/
Dzięki temu masz nie więcej niż trzy prawidłowe pary:
(([a-fA-F]|[0-9]){2}){3}
Jakiekolwiek mniej lub więcej niż trzy pary prawidłowych znaków nie pasują.
W tym przypadku trzeba obrębie wejścia, w którym użytkownik może wpisać 0
, a 0x
także, ale nie wiele hex bez 0x
prefiksu:
^0?[xX]?[0-9a-fA-F]*$
Inny przykład: wartości szesnastkowe dla kolorów css zaczynają się od krzyżyka lub krzyżyka (#), a następnie sześć znaków, które mogą być cyfrą lub literą z przedziału od A do F włącznie.
^#[0-9a-fA-F]{6}