Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式捕获从第二个到最后一个反斜杠之后的所有内容_Javascript_Regex - Fatal编程技术网

JavaScript正则表达式捕获从第二个到最后一个反斜杠之后的所有内容

JavaScript正则表达式捕获从第二个到最后一个反斜杠之后的所有内容,javascript,regex,Javascript,Regex,我有一个正则表达式,目前看起来如下所示: /^.[\\/]/ 这将从字符串中删除每个反斜杠。我现在面临的问题是,我现在必须能够捕捉到从第二个反斜杠到最后一个反斜杠的所有内容 例如: /Users/foo/a/b/c将返回b/c /other/example/将返回other/example 因此,我需要捕获第二个到最后一个反斜杠之后的所有内容。上面的正则表达式如何做到这一点 试试这个简单的解决方案: s = "aaaa/bbbb/cccc/dddd"; s.split("/").slice(-2

我有一个正则表达式,目前看起来如下所示:

/^.[\\/]/

这将从字符串中删除每个反斜杠。我现在面临的问题是,我现在必须能够捕捉到从第二个反斜杠到最后一个反斜杠的所有内容

例如:

/Users/foo/a/b/c
将返回
b/c
/other/example/
将返回
other/example


因此,我需要捕获第二个到最后一个反斜杠之后的所有内容。上面的正则表达式如何做到这一点

试试这个简单的解决方案:

s = "aaaa/bbbb/cccc/dddd";
s.split("/").slice(-2).join("/"); /* It will return "cccc/dddd" */

尝试以下简单的解决方案:

s = "aaaa/bbbb/cccc/dddd";
s.split("/").slice(-2).join("/"); /* It will return "cccc/dddd" */

我想你指的是正斜杠,不是反斜杠

这里有一个正则表达式替代pierlauro的答案

/([^\/]+\/[^\/]+)\/?$/

我想你指的是正斜杠,不是反斜杠

这里有一个正则表达式替代pierlauro的答案

/([^\/]+\/[^\/]+)\/?$/

正如pierlauro的回答所示,
split
join
slice
可能是最好的选择。但如果您必须使用正则表达式(不确定为什么),您可以使用以下内容:


此正则表达式适用于可选的尾部斜杠和小于2的URL。它利用
$
字符将搜索范围集中在字符串的末尾。

正如pierlauro的回答所示,
拆分
加入
切片
可能是最好的选择。但如果您必须使用正则表达式(不确定为什么),您可以使用以下内容:


此正则表达式适用于可选的尾部斜杠和小于2的URL。它利用
$
字符将搜索范围集中在字符串的末尾。

如果要捕获从第二个反斜杠到最后一个反斜杠的所有内容,是否希望从第一个示例中获取
a/b
?不太清楚…您的URL/字符串是否始终使用尾部斜杠?还是应该忽略它们?@haxxxton它们实际上可以被忽略。我们可以假设
/
之间的字符是单词字符(即
[a-zA-Z0-9.]
)是否需要容纳其他字符(例如
$-!*(),
)?如果要捕获从第二个反斜杠到最后一个反斜杠的所有内容,是否希望从第一个示例中获取
a/b
?不太清楚…您的URL/字符串是否始终使用尾部斜杠?还是应该忽略它们?@haxxxton它们实际上可以被忽略。我们可以假设
/
之间的字符是单词字符(即
[a-zA-Z0-9.]
)还有其他字符需要容纳吗(例如
$-!*(),
)?我想你的意思是
片段(-2)
。作为
slice(2)
如果
s=“aaaa/bbbb/cccc/ddddd/eeee”
返回的项目太多,如果
s=“aaaa/bbbb/cccc”
返回的项目太少,回答正确,但您应该删除任何后面的斜杠!这是一个很好的例子,解释了为什么有时候正则表达式会被过度使用。说明
拆分
加入
以及
切片
的功能。干得好。我想你指的是
切片(-2)
。作为
slice(2)
如果
s=“aaaa/bbbb/cccc/ddddd/eeee”
返回的项目太多,如果
s=“aaaa/bbbb/cccc”
返回的项目太少,回答正确,但您应该删除任何后面的斜杠!这是一个很好的例子,解释了为什么有时候正则表达式会被过度使用。说明
拆分
加入
以及
切片
的功能。做得好。