的最後一個索引例如:正則表達式:匹配的文本最多字符
從這個地址,我需要提取以下內容:
我曾嘗試用以下的正則表達式:
(?<namespace>.*)/.*?
,但返回的值是
HTTP:
誰能幫助?謝謝。
的最後一個索引例如:正則表達式:匹配的文本最多字符
從這個地址,我需要提取以下內容:
我曾嘗試用以下的正則表達式:
(?<namespace>.*)/.*?
,但返回的值是
HTTP:
誰能幫助?謝謝。
試試這個:
^(?<namespace>.*)/[^/]+$
一個快速的解釋:
^ # the start of input
(?<namespace>.*)/ # zero or more chars followed by a '/' (which the last '/')
[^/]+ # one or more chars other than '/'
$ # the end of input
嘗試用這個表達式:
^(?<namespace>.*)/.*$
我覺得正則表達式是矯枉過正這裏。你使用什麼編程語言?這將是如何在JavaScript中完成的。
var url = 'http://foobar.com/foo/bar/foobar.php'
url.split('/').slice(0,-1).join('/')
你甚至可以使用SUBSTR一些性能!
var url = 'http://foobar.com/foo/bar/foobar.php'
url.substr(0, url.lastIndexOf('/'))
我提供的陣列方式的唯一原因是因爲我不知道在lastIndexOf
跨瀏覽器兼容的。
這可能是PHP,所以像'substr($ url,0,strrpos($ url,'/'))'等於你的第二個。 –
您是否使用特定的開發環境或框架?許多語言都有專門用於解析URL並返回其組件的函數。這可能是一個更好的方法,然後正則表達式,如果它是一個選項。 –
基於命名組語法加上.php擴展名,我會說他們正在使用PHP(和PCRE 7+正則表達式),所以使用[strrpos]可能更好(http://www.php.net/manual /en/function.strrpos.php)和[substr](http://www.php.net/manual/en/function.substr.php)(或者可能是另一個函數,如果PHP有一個「刪除最後一個元素」類型事情)。 –
@Jacob雖然Bart的解決方案正在發揮作用,但您的評論是最有幫助的答案。我正在使用.NET進行開發,但我不確定爲什麼當有許多已經寫好的組件可以幫助我時,我決定使用正則表達式。謝謝! –