2011-07-26 5 views
0

도메인의 특정 명칭을 제한하려하지만 다른 명칭을 허용하려고합니다. 예를 들어, 정규 표현식이와 www.abc.co.uk하지만 수 www.abcdef.co.uk, www.abc-def.co.uk 등 abc.co.uk을 허용 할이 정규식을 더 잘 수행 할 수 있습니까?

^(www\.)?(?!abc\.co)[a-zA-Z\-]+\.(co|org)\.uk$ 

입니다 그러나 이것이 더 잘될 수 있는지 궁금해하고 있습니까? 여기

EDIT 서브 도메인을 허용 동일한 정규 표현식의 예이다.

^(www\.)?([a-zA-Z\-]+\.)?(?!abc\.co)[0-9a-zA-Z\-]+\.(co|org)\.uk$ 
+1

구체적으로 허용하고 거부 할 항목은 무엇입니까? – Gareth

+2

'abC.co.uk'을 허용하고 싶지 않으므로'/ i' 또는'(? i : ...)'를 사용하십시오. – Qtax

+0

@Gareth - abc.co.uk를 제외한 모든 도메인 변형을 허용하고 싶습니다. – PeanutsMonkey

답변

1

abc.co.uk 또는 abc.org.uk하지 끝을하지 아무것도 일치 할 것 같다.

(?<!abc.(co|org).uk)$ 

이 주어진 정규 표현식으로 끝나지 않고 그것을 주장하는 입력의 끝에서 뒤에 부정적인 모양을 사용하는 올바른 것으로 가정
, 여기에 있음을 표현하는 정규식입니다.

+0

왜 부정적인 lookahead와 반대로 부정적인 lookbehind를하는 이유는 무엇입니까? – PeanutsMonkey

+0

중요한 점은 입력이 * end *로 끝나지 않아야하므로 앵커로 입력 끝을 사용하면이 정규식에서 "마지막에 도달하면 이전 문자가 ㅋㅋ"라고 말합니다. – Bohemian

+0

감사합니다. 하지만 그 문자열이 abc.co.uk와 같은 문자열로 시작하는지 여부를 확인하고 나머지 부분은 실행하지 않는 것이 좋습니다. http://gskinner.com/RegExr/에서 제안을 시도했습니다. 그것은 작동하지 않는 것 같습니다. – PeanutsMonkey

관련 문제