URI에

2011-02-08 5 views
1

문자열 # 1의 마지막 세그먼트를 추출 :URI에

/string/morestring/thename 

문자열 # 2 :

/string/morestring/thename/ 

정규식 :

상기 정규식 모두 마지막 세그먼트 일치
[^\/]*[\/]*$ 

.. .

어떻게 정규식을 라와 만 일치시킬 수 있습니까? st 단어 모두 "thename"및 "thename /", 최종 슬래시 유무에 관계없이?

답변

4
+0

질문은 정규식에 관한 것이었고 암시 적으로 특정 언어 나 메서드에 연결되지 않았기 때문에 솔루션을 선택했습니다. 모든 해답은 다른 문제를 해결하고 매우 감사하게 생각합니다. – Codex73

+1

@ Codex73 : 당신은 PHP로 태그를 붙였습니다. –

+0

@Truth 당신은 완전히 옳았습니다. – Codex73

9

나는 단지 basename()을 사용합니다.

+3

+1, 하나의 문제가 덜합니다. :) – deceze

+0

+1. PHP가 Windows에서 실행되는 경우 basename이 URI에 대해 작동합니까? (경로 구분자가 \\이므로) – Ben

+1

@Ben 매뉴얼에 따르면 :'Windows에서는 슬래시 (/)와 백 슬래시 (\\)가 디렉토리 구분자로 사용됩니다. ' – jeroen

3

제론의 기본 이름 솔루션은 URI가 너무 .something로 끝나는 경우도 확장을 잘라 것, 매우 좋지만 창에 작동하지 않을 수 있습니다.

나는이 작업을 수행 할 것 :

$last = array_pop(explode('/',rtrim($s,'/'))); 
+0

도움 주셔서 감사합니다. – Codex73

1

또 다른 옵션 : 비 정규식 솔루션

$last = array_pop(preg_split('#/+#', rtrim($s, '/'))); 
+0

도와주세요. – Codex73

관련 문제