0

我有一个看起来像这样的字符串:("http://www.example.com/hello/world/ab/c/d.html"或这个"http://www.example.com/hello/world/ab/d.html":)

我想提取 和 之间的http://www.example.com/hello/world/内容d.html。通用正则表达式应该是什么?

4

2 回答 2

1

你可能想要

/^http:\/\/[^\/]*\/[^\/]*\/[^\/]*\/(.*)\/[^\/]*$/

这个(看起来很复杂)表达式跳过了域和前两个路径分量,然后提取了最终路径分量之前的所有位。

例子:

>>> 'http://www.google.com/hello/world/ab/c/d.html'.match(/^http:\/\/[^\/]*\/[^\/]*\/[^\/]*\/(.*)\/[^\/]*$/)
["http://www.google.com/hello/world/ab/c/d.html", "ab/c"]
于 2012-08-25T05:23:00.493 回答
0

您正在寻找的正则表达式是:/^http\://www.google.com/hello/world/(.*/)d.htm$/

http://jsfiddle.net/rDvJK/

function getIt(fromWhat) {
    var matches = fromWhat.match(/^http\:\/\/www\.google\.com\/hello\/world\/(.*\/)d.htm$/);
    console.log(matches);
    return matches[1];
}
getIt("http://www.google.com/hello/world/ab/c/d.htm");
于 2012-08-25T05:16:04.453 回答