[regex] MAC 주소에 대한 정규식이란 무엇입니까?

이 형식에서 :

3D:F2:C9:A6:B3:4F

또는:

3D-F2-C9-A6-B3-4F



답변

사람에게 친숙한 형식으로 MAC-48 주소를 인쇄하기위한 표준 (IEEE 802) 형식은 하이픈 -또는 콜론으로 구분 된 두 개의 16 진수 숫자로 구성된 6 개 그룹입니다 :.

그래서:

^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$


답변

눈에 약간 딱딱하지만 이것은 :

/^(?:[[:xdigit:]]{2}([-:]))(?:[[:xdigit:]]{2}\1){4}[[:xdigit:]]{2}$/

MAC 표기법에 모든 콜론 또는 모든 대시를 적용합니다.

( A1:B2-C3:D4-E5:F6예를 들어, 더 간단한 정규식 접근 방식은을 허용 할 수 있습니다 .


답변

이 정규식은 다음과 같은 Cisco 형식을 포함하여 거의 모든 Mac 형식과 일치합니다. 0102-0304-abcd

^([[:xdigit:]]{2}[:.-]?){5}[[:xdigit:]]{2}$

일치하는 예제 문자열 :

01:02:03:04:ab:cd
01-02-03-04-ab-cd
01.02.03.04.ab.cd
0102-0304-abcd
01020304abcd

혼합 형식도 일치합니다!


답변

구분자 : ” : “, ” “, ” .

이중 또는 단일 : 00 = 0, 0f = f

/^([0-9a-f]{1,2}[\.:-]){5}([0-9a-f]{1,2})$/i

또는

/^([0-9a-F]{1,2}[\.:-]){5}([0-9a-F]{1,2})$/

exm: 00:27:0e:2a:b9:aa, 00-27-0E-2A-B9-AA, 0.27.e.2a.b9.aa ...


답변

유니 코드 속성 \p{xdigit}에는 FULLWIDTH 버전이 포함되어 있습니다. \p{ASCII_Hex_Digit}대신 선호 할 수 있습니다 .

질문에 대한 답변은 다음과 같이 입력하여 가장 좋은 답변이 될 수 있습니다. 특정 CPAN 모듈이 설치되어있는 경우 :

% perl -MRegexp::Common -lE 'say $RE{net}{MAC}'

여기 에 럭키 패턴 번호 13으로 출력되는 특정 패턴을 보여줍니다 . 다른 많은 것들이 있습니다.

이 프로그램:

#!/usr/bin/env perl
use 5.010;
use strict;
use warnings qw<FATAL all>;

my $mac_rx = qr{
    ^ (?&MAC_addr) $
    (?(DEFINE)
        (?<MAC_addr>
                (?&pair) (?<it>  (?&either) )
            (?: (?&pair) \k<it> ) {4}
                (?&pair)
        )
        (?<pair>    [0-9a-f] {2} )
        (?<either>  [:\-]        )
    )
}xi;

while (<DATA>) {
    chomp;
    printf("%-25s %s\n", $_ => /$mac_rx/ ? "ok" : "not ok");
}

__END__
3D:F2:C9:A6:B3:4F
3D:F2:AC9:A6:B3:4F
3D:F2:C9:A6:B3:4F:00
:F2:C9:A6:B3:4F
F2:C9:A6:B3:4F
3d:f2:c9:a6:b3:4f
3D-F2-C9-A6-B3-4F
3D-F2:C9-A6:B3-4F

다음 출력을 생성합니다.

3D:F2:C9:A6:B3:4F         ok
3D:F2:AC9:A6:B3:4F        not ok
3D:F2:C9:A6:B3:4F:00      not ok
:F2:C9:A6:B3:4F           not ok
F2:C9:A6:B3:4F            not ok
3d:f2:c9:a6:b3:4f         ok
3D-F2-C9-A6-B3-4F         ok
3D-F2:C9-A6:B3-4F         not ok

당신이 찾고있는 것 같은데.


답변

링크 가 도움 이 될 수 있습니다. 이것을 사용할 수 있습니다.(([0-9A-Fa-f]{2}[-:]){5}[0-9A-Fa-f]{2})|(([0-9A-Fa-f]{4}\.){2}[0-9A-Fa-f]{4})


답변

이 질문 도 참조하십시오 .

정규식은 다음과 같습니다.

^[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}$

^[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}$