2

我需要一个小助手来处理我可怜的正则表达式。我正在尝试从 URL 中获取 41398。这个数字是一个变量

http://www.website.com/beta/flips/index/41398_1363874140/friend/756

我想出了如何将所有内容抓取到 / after 索引。

var url      = document.URL;
var myRegexp = /index(.*)/;
var match    = myRegexp.exec(url);

这给我留下了/41398_1363874140/friend/756....

regEx 是否有解决方案来获取 / 和 _ 之间的数字?

我试过了

var url      = document.URL;
var myRegexp = \/(.*?)\_;
var match    = myRegexp.exec(url);

当然,“/”是问题所在。

4

4 回答 4

3

如果你知道总会有一个下划线,你可以使用:

var url      = document.URL;
var myRegexp = /\d+_/;
var match    = myRegexp.exec(url);
于 2013-05-08T18:36:43.713 回答
1

这是一个只匹配数字的正则表达式(?<=index/)[0-9]*(?=_)。你没有说你正在使用什么语言,这将有助于使这个更具体

于 2013-05-08T18:36:32.977 回答
1

你需要第一场比赛吗?如果没有,那么您可以直接使用:

var url      = document.URL;
var myRegexp = /index\/(.*?)_/;
var match    = myRegexp.exec(url);

好吧,你几乎接近了。下划线不需要转义。

否则,您可以使用您的第一个匹配项(在上面的前 3 行代码之后添加这些匹配项):

var myNewRegexp = /\/(.*?)_/;
var NewMatch    = myNewRegexp.exec(match);
于 2013-05-08T18:32:53.933 回答
1

您可以使用:

/\/index\/(\d+)/

这意味着第一组与数字匹配。

于 2013-05-08T18:33:28.700 回答