텍스트에서 16 진수를 감지하는 정규식을 어떻게 만듭니 까?
예 : ‘0x0f4’, ‘0acdadecf822eeff32aca5830e438cb54aa722e3’및 ‘8BADF00D’.
답변
다음은 어떻습니까?
0[xX][0-9a-fA-F]+
0으로 시작하고 그 뒤에 소문자 또는 대문자 x가 뒤 따르고 0-9, af 또는 AF 범위에있는 하나 이상의 문자가 뒤 따르는 표현식과 일치합니다.
답변
정확한 구문은 정확한 요구 사항과 프로그래밍 언어에 따라 다르지만 기본적으로 다음과 같습니다.
/[0-9a-fA-F]+/
또는 더 간단하게 i
대소 문자를 구분하지 않습니다.
/[0-9a-f]+/i
운이 좋으면 Ruby를 사용할 수 있습니다.
/\h+/
편집 -Steven Schroeder의 답변으로 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
것 보다 간단한 16 진 문자를 일치시키기위한 것이 있습니다.
따라서 요청 된 정규식 (즉, 선택 사항 포함 0x
)은 다음 과 같습니다./(0x)?[[:xdigit:]]+/
답변
0x
접두사 유무에 관계없이 일치 합니다.
(?:0[xX])?[0-9a-fA-F]+
답변
MD5 (예제 중 하나) 감지는 다음과 같이 수행 할 수 있습니다.
[0-9a-fA-F]{32}
답변
Perl 또는 PHP를 사용하는 경우
[0-9a-fA-F]
와:
[[:xdigit:]]
답변
기록을 위해 다음을 지정합니다.
/^[xX]?[0-9a-fA-F]{6}$/
가된다는 사실을 확인한다는 점에서 어느 다르다 가지고 우리가 하나가 여섯 개 유효한 문자와 경우에 소문자 나 대문자 X에를 포함 할 수 있습니다.
