2014-10-10 4 views
-1

정규 표현식 작성이 처음입니다. 와일드 카드 도메인 일치 확인을위한 정규식을 작성할 계획입니다. 다음은 시나리오입니다.와일드 카드 도메인 유효성 검사를위한 정규 표현식

올바른 :

  • *.test.com
  • test.com
  • abc.test.com

잘못된 :

  • *test.com
  • test.abc*.com

test.*.com

  • 16,
  • test.com*
  • 여기에 예상대로 작동하고

    /^(([a-zA-Z0-9]|\*\.[a-zA-Z0-9])([a-zA-Z0-9\-_]{0,243}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/ 
    

    위 secnario 내 정규 표현식입니다. 우리는 더 나은 표현을 향상 시키거나 쓸 수 있습니까?

  • +2

    정규 표현식을 향상 시키려면 규칙을 말해주십시오. –

    답변

    2
    ^(\*\.)?([\w-]+\.)+[\w-]+$ 
    

    은 예제와 일치합니다. Demo 1

    필자의 견해로는 세 번째 부정적인 예를 옳은 것으로 취급 할 것입니다.

    ^(([\w-]+\.)|(\*\.))+[\w-]+$ 
    

    Demo 2

    편집 :
    은 당신이이 허용 된 모든 문자가 포함 된 문자 클래스를 적용 할 수 있습니다. 정규 표현식을 쉽게 읽을 수 있도록하고 싶습니다.

    +0

    답장을 보내 주셔서 감사합니다. 위의 모든 시나리오에서 작동합니다. 내 질문에 언급 한 것을 잊지 마라. -1. 최대 길이는 250이어야한다. 2. 밑줄 (_)을 사용할 수 없다. 3. 하이픈 (-)을 허용해야한다. –

    +1

    '\ d'가 이미 \ w에 포함되어있다. ''[\ w \ d] +'는'\ w +' – Toto

    +0

    @ M42 ok와 같기 때문에 나는 잘못 생각했다. 내가 고쳐 썼다. 고맙다. –

    관련 문제