2011-12-08 4 views
1

에서 내가 URL에서 불과 스크립트 이름을 추출하는 방법을 정규 표현식의 도움을 찾고 :추출 스크립트 이름 URL

내가 가진 :

"http://www.example.com/index234.html" 

"index234"를받을 찾고?

+0

이 거의 정확하게이 질문과 동일 http://stackoverflow.com/questions/8426568/extract-file-name- 백 슬래시 대신 슬래시를 사용한다는 점을 제외하고는 from-a-path-using-regular-expression을 사용합니다. –

답변

3

사용 this 정규식 :

/^http:\/\/(www\.)?example.com\/(?<scriptName>.*)\.html$/ 

편집 :

this 정규식 다른 URL 및 경로

을 위해 일하는 것이
/^http:\/\/(www\.)?(.*\/)*(?<scriptName>.*)\..*$/ 
+0

별로 ... 나는 'http : // www.difrentsite.org/folder/subfolder/newindex1.php'와 같이 스크립트와 다른 사이트 및 경로가 될 수 있으며'newindex1'이 필요합니다. – bensiu

+0

@bensiu 나는 대답을 편집했습니다. . – fardjad

+0

나는'www' 부분을 더 강력하게 제거하고''/^http : \/\ /? (. * \ /) * (? . *) \ .. * $/''를 사용합니다. +1에 대한 ''- 고맙습니다 – bensiu

0

시도 : http://([\w\-\.]+/)+([\w\-\.]+)\.html 스크립트 이름은 2 캡처에 ($ 2 또는 \ 2). 당신은 필요에 따라 프로토콜과 파일 확장자를 조정할 수 있습니다. 실제로 어떤 문자가 URL 이름에 실제로 허용되는지는 알지 못합니다. 따라서이 경우 문자, 숫자, 하이픈 및 점만 가정합니다.

6

사용 parse_url

$url = 'http://www.example.com/index234.html'; 
$parts = parse_url($url); 
preg_match('~([^/]+)\..+$~', $parts['path'], $m); 
print_r($m); 

출력 :

Array 
(
    [0] => index234.html 
    [1] => index234 
) 
+1

고체 솔루션 - 감사합니다! –