2013-04-03 5 views
0

처음 공백이 올 때까지 정규식과 연결하거나 <이 나타날 때까지 연결을 일치 시키려고합니다. 나는이 정규식정규식과 일치하는 링크

\b(((http|ftp)(.)?\:\/\/)?(www\.)?example\.com([^\s|<]+)?)\b 

을 시도하지만 그것은 또한 example.com.au 일치되는이 정규식의 문제이다. 그래서 내가 먼저 공간까지

example.com      // match 
example.com/somelink/link  // match 

example.com.au     // do not match 
example.com.au/somelink/link  // do not match 

경기를 일치시킬이나 < 그냥 당신이 .COM 후

\b(((http|ftp)(.)?\:\/\/)?(www\.)?example\.com([^\s|<|\.]+)?)\b 

어떤 점을 일치하거나 더 얻을 싶지 않아 그에게

+1

그래서 'example.com'과 구체적으로 일치 시키시겠습니까? 'example.com.au'는 유효한 호스트입니다. –

+0

@KennethK. yes example.com은 일치하지만 example.com.au는 일치하지 않는다. 첫 번째 공백이 'example.com'과 같이 나타날 때까지 모든 것을 매치한다. –

답변

1

http://example.com/whatever과 일치하는 해결책은 있지만 http://example.com.au/whatever이 아닙니다.

/\b(((http|ftp)(.)?:\/\/)?(www\.)?example\.com(?!\.[\w\d])(\/[^\s<]*)?)\b/ 

이 텍스트에 대해 시험 하였다 :

Match http://example.com/ but not http://example.com.au 
This is a sentence about http://example.com/. 
http://example.com< 
http://example.com/asdf.asdf.asdf/ asdf 
http://example.computer 

그것은 구체적 example.com \.[\w\d] 다음을 제외하는 부정적 예측을 사용한다.

+0

은 꽤 인상적으로 보입니다. 먼저 해 볼까요. –

+0

고마워, 나는 그것을 파악하기 위해 열심히 노력했다. –

0

발생할 것 영리하고 .com 후에 슬래시가 예상되면 .com

\b(((http|ftp)(.)?\:\/\/)?(www\.)?example\.com(\/[^\s|<]+)?)\b 
+0

'.com' 뒤에는 점이 없지만 이후에는 모두 일치해야한다. '.com' 첫 번째 공간이 생길 때까지. 예 슬래시가 예상됩니다. –

+0

제가 언급 한 두 번째 것은 잘 작동합니다. – bubba

+0

위의 정규식은 여전히 ​​example.com.au의 example.com과 일치합니다. –

관련 문제