2010-04-22 3 views
1

에서 얻는 내용이 나는 사이에있는 어떤정규식 : URL

  • http://www.somesite.com.domain.webdev.domain.com/en/the-game/another-one/another-one/another-one/
  • http://www.somesite.com.domain.webdev.domain.com/en/the-game/another-one/another-one/
  • http://www.somesite.com.domain.webdev.domain.com/en/the-game/another-one/
+0

어떤 언어를 사용하고 있습니까? –

+0

여기에서 사용하고 싶습니다 http://www.movabletype.org/documentation/appendices/modifiers/regex-replace.html – FarazShuja

답변

1
var myregexp = /^(?:[^\/]*\/){4}([^\/]+)/; 
var match = myregexp.exec(subject); 
if (match != null) { 
    result = match[1]; 
} else { 
    result = ""; 
} 

경기처럼 URL의 정규 표현식을 사용하여 "the-game을"싶어 4 번째와 5 번째 슬래시를 찾아 결과를 변수에 저장합니다. result.

+0

귀여운 ... 그 생각은했지만 대답으로 쓰지 않았습니다 – dlamotte

+0

왼쪽 4 번째와 5 번째 슬래시 (/) 사이의 텍스트를 찾고 있습니다. – FarazShuja

+0

아, 당신이 나를 이길거야! 얼마나 까다로운 요구 사항이 이루어지고 있는지 놀랍습니다. – BenV

1

URL의 어떤 부분이 달라질 수 있으며 어떤 부분이 상수입니까? 다음 정규 표현식은 "/ en /"다음에 오는 슬래시 (예 : the-game)와 항상 일치합니다.

(?<=/en/).*?(?=/) 

이것은 하나의 슬래시의 첫 번째 세트는 2 또는 3 문자 언어 코드를 포함하는 가정 "이 WebDev"를 포함하는 모든 URL의 슬래시의 두 번째 세트의 내용과 일치합니다.

(?<=.*?webdev.*?/.{2,3}/).*?(?=/) 

당신이 찾고있는 것을 달성하기 위해이 예제들을 조정할 수 있기를 바랍니다.

+0

왼쪽에서 읽기 나는 4 번째와 5 번째 슬래시 (/) 사이의 텍스트를 찾고 있습니다. – FarazShuja

0

정규식을 사용하는 대신에 URL을 파싱하는 라이브러리를 사용해야합니다. 파이썬에서

:

from urlparse import urlparse 
url = urlparse('http://www.somesite.com.domain.webdev.domain.com/en/the-game/another-one/another-one/another-one/') 
print url.path 

얻을 것이다 :

/en/the-game/another-one/another-one/another-one/ 

는 여기에서, 당신은 경로의 처음부터 /en/을 제거 같은 간단한 작업을 수행 할 수 있습니다. 그렇지 않으면 정규식에 문제가있을 수 있습니다. 바퀴를 재발 명하지 마십시오!