제외한 모든 영숫자 하위 도메인, 이것은 큰 정규식 (PHP)의 작품이다 : 나는 유효한 하위 도메인에 사용정규식 : www가
((?:[0-9A-z_-]+))
,하지만 난 모든 하위 도메인 제외 을 "받아 들일 싶습니다 www "
영숫자"선택기 "가있을 때 어떻게 할 수 있습니까?
편집 : 마지막으로 (\b(?!www\b)(?:[0-9A-Za-z_-]+))
사용, 팀 및 ATS
제외한 모든 영숫자 하위 도메인, 이것은 큰 정규식 (PHP)의 작품이다 : 나는 유효한 하위 도메인에 사용정규식 : www가
((?:[0-9A-z_-]+))
,하지만 난 모든 하위 도메인 제외 을 "받아 들일 싶습니다 www "
영숫자"선택기 "가있을 때 어떻게 할 수 있습니까?
편집 : 마지막으로 (\b(?!www\b)(?:[0-9A-Za-z_-]+))
사용, 팀 및 ATS
덕분에이 시도 :이 "하지 WWW를"말을 부정적 예측을 사용
((?!www)(?:[0-9A-Za-z_-]+))
.
여기서는 정규 표현식의 나머지 부분 (작성한대로 더 큰 표현식의 일부임을 나타냄)을 사용하여이 부분에 가능한 하위 도메인이 있는지 확인합니다. 따라서이 부분은 하위 도메인의 모두과 일치해야하지만 모두 일치하는지 확인하지 않아도됩니다.
이 (사용할 수 없으므로) 할 수 없으므로 www
뒤에 적절한 경계 감지를 삽입하십시오. 아마 \b
이면 충분합니다.
고마워, 효과가 있었어! (9 분 안에 답을 수락 할 수 있음) –
아무런 문제가 없지만 기다릴 수 있습니다. – SQB
도메인 이름에 www가 들어 있지 않다는 뜻입니까? 그게 시험이라면 어떨까요? – Srb1313711
먼저 정규식이 올바르지 않으므로 ((?:[0-9A-Za-z_-]+))
(또는 간단히 ([\w-]+)
- 캡처하지 않는 그룹은 필요 없음)이어야합니다. 일치하지 않으려는 문자가 Z
과 a
사이에 있습니다.
둘째, negative lookahead assertion을 사용하여 일치하는 문자열이 www
이 아닌지 확인하십시오. 우리가 www
에서 submatch ww
을 복용하지 않을 있는지 확인 (또는 wwwwwhat.sgoing.on
일치하지)하기 위해서는 문맥에 따라, word boundary anchors를 추가 할 필요가 있습니다 : 나 하위 도메인을 확인하는
\b(?!www\b)([\w-]+)
잘 설명해 주셔서 감사합니다. 여러 하위 도메인 (subsubdomain, subsubsubdomain ...)을 허용하지만 하나만 유효합니다. –
다음과 같이 사용했습니다. (\ b (?! www \ b) (? : [ 0-9A-Za-z _-] +))는 도트를 허용하지 않습니다. –
이 작동합니다.
^([a-z0-9]+([\-a-z0-9]*[a-z0-9]+)?\.){0,}([a-z0-9]+([\-a-z0-9]*[a-z0-9]+)?){1,63}(\.[a-z0-9]{2,7})+$
이것은 일치에서 'www'를 제외하지 않습니다. 이는 명시 적으로 ** 요청 된 것입니다. – SQB
'(?! www)'를 사용해보십시오. [추가 정보] (http://www.regular-expressions.info/completelines.html) ('특정 단어를 포함하거나 포함하지 않는 라인 찾기'단락으로 이동하십시오.) – Laoujin
_Almost_, 그러나 완전히 일치하지는 않습니다 [Regex for ANY "www"를 제외한 문자열? (하위 도메인)] (http://stackoverflow.com/q/7099397/2936460). – SQB