2013-04-09 2 views
0

어떤 이유로 나는 항상 극단적 인 기본 정규식을 지나치는 것을 계속합니다.에 대한 기본 정규식

종류의 정규 표현식을 만들려고하는데은 URL처럼 보입니다. 나는 단지 기본적인 점검 만 원한다.

X가 "무언가"인 다음 패턴과 일치시키고 싶습니다. 등

X.X

X.X...

문자열이 이러한 패턴 중 하나가 포함 된 경우

X://X.X

X://X.X..., 그것은 나를 위해 확인 충분하다. 이 방법으로 www.example.com:8888 같은 URL은 여전히 ​​일치합니다. 내가 preg_match와 많은 다른 REGEX 조합을 시도하고 내가 원하는 방식으로 행동하는 것처럼 보이지 않을 수 있습니다. 나는 많은 다른 관련 REGEX 질문을 의논했으나 나의 독서는 나를 도왔다.

어떤 도움이 필요합니까? 원할 경우 더 많은 정보를 기꺼이 제공 할 것이지만 그 밖의 무엇이 필요한지 모르겠습니다.

+1

http://stackoverflow.com/questions/833469/regular-expression-for-url : 여기에 코멘트를

UPDATE

업데이트 된 패턴이다 –

답변

2

그것은 연습이 필요하지만 여기 내 패턴을 확인하는 정규식 테스터 (http://www.regextester.com/)를 사용하여 만든 하나입니다

^.+(:\/\/|\.)([a-zA-Z0-9]+\.)+.+ 

내 접근 방식은 천천히 처음부터 내 패턴을 구축에 한 조각에 추가하는 것입니다 시간. 이 치트 시트는 모든 것이 무엇인지 http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/ 기억하기 매우 좋습니다.

기본적으로 패턴은 문자열의 시작 부분에서 시작하여 임의의 문자가 있는지 확인합니다 : // 또는. 그 다음 글자와 숫자의 그룹을 검사 한 다음 a. 임의의 수의 문자로 끝납니다.

그룹화가 유효하지 않은 문자를 전달하지 않으면 패턴이 향상 될 수 있습니다. 그러나 이것은 빠르고 더러 웠습니다. 첫 번째 및 마지막 .을 유효한 문자로 바꿀 수 있습니다.

^.+?(:\/\/|\.)?([a-zA-Z0-9]+?\.)+.+ 
+0

'+'의 탐욕은 아마도 필요한 것보다 더 많이 일치하게 될 것입니다. –

+0

고마워,하지만 이건 실제로 나를 위해'google.com'과 같은 무언가에 대해 작동하지 않습니다. 이게 내 실수일까요? – Rell3oT

+0

@ Rell3oT 아니요, google.com과 일치하지 않습니다. 그리고 다른 의견마다 탐욕에 대한 몇 가지 문제가 있습니다. – Schleis

0
/^(.+:\/\/)?[^.]+\.[^.\/]+([.\/][^.\/]+)*$/