Javascript 正则表达式在斜杠的第二个实例之后捕获整个字符串

Javascript 正则表达式在斜杠的第二个实例之后捕获整个字符串,javascript,regex,Javascript,Regex,我有一个采用路径形式的字符串,例如: Year 1 / English / Writing / How to write your name 我需要生成一个字符串,它是第二个正斜杠之后的所有内容。根据上面的示例,这意味着我希望的输出是: Writing / How to write your name 我已经看到了许多关于输出URL最后一部分或在文件路径中获取特定文件夹名称的问题/答案,但到目前为止没有一个对我有效。我承认,由于时间的限制,我的研究还不够广泛 我的第一个想法是在javascr

我有一个采用路径形式的字符串,例如:

Year 1 / English / Writing / How to write your name
我需要生成一个字符串,它是第二个正斜杠之后的所有内容。根据上面的示例,这意味着我希望的输出是:

Writing / How to write your name
我已经看到了许多关于输出URL最后一部分或在文件路径中获取特定文件夹名称的问题/答案,但到目前为止没有一个对我有效。我承认,由于时间的限制,我的研究还不够广泛

我的第一个想法是在javascript中使用如下内容:

var input = "Year 1 / English / Writing / How to write your name";
var firstCut = input.substr(input.indexOf('/') + 1);
var secondCut = firstCut.substr(firstCut.indexOf('/') + 1);
我更喜欢更优雅的解决方案,如果可能,最好使用正则表达式


谢谢

您可以使用
replace
ing方法:

var s=“第一年/英语/写作/如何写你的名字”;
var result=s.replace(/^(?:[^\/]*\/){2}\s*/,“”);

控制台日志(结果)您可以使用
replace
ing方法:

var s=“第一年/英语/写作/如何写你的名字”;
var result=s.replace(/^(?:[^\/]*\/){2}\s*/,“”);

控制台日志(结果)您可以使用
^.*.\/.\/.\/
删除不需要的零件

var string='Year 1/英语/写作/如何写你的名字';
var result=string.replace(/^.*?\/.*?\/,“”);

控制台日志(结果)您可以使用
^.*.\/.\/.\/
删除不需要的零件

var string='Year 1/英语/写作/如何写你的名字';
var result=string.replace(/^.*?\/.*?\/,“”);

控制台日志(结果)
此正则表达式将以
[整个字符串匹配,捕获组]
的形式返回一个数组。它从字符串的开头开始,匹配两组非
/
的任意数量的字符,后跟
/
,然后捕获从那里到字符串末尾的其余字符

let test=“第一年/英语/写作/如何写你的名字”
let result=/^(?:[^\/]+\/){2}(+)/.exec(test)[1]

console.log(result)
此正则表达式将以
[整个字符串匹配,捕获的组]
的形式返回一个数组。它从字符串的开头开始,匹配两组非
/
的任意数量的字符,后跟
/
,然后捕获从那里到字符串末尾的其余字符

let test=“第一年/英语/写作/如何写你的名字”
let result=/^(?:[^\/]+\/){2}(+)/.exec(test)[1]

console.log(结果)
谢谢您的回答。恐怕我在运行控制台时遇到了一个错误:“无效的正则表达式:missing/”。我在正则表达式末尾缺少了一个斜杠,现在已经修复了。谢谢你的回答。恐怕我在运行控制台时遇到了一个错误:“无效的正则表达式:missing/”。我在正则表达式末尾缺少了一个斜杠,现在已经修复了。谢谢你的回答,它工作得很好!我将接受上面Wiktor的回答,因为他的答案不包含前导空格,我更喜欢使用match/replace而不是exec。尽管如此,还是投票支持这个答案吧@Drummad Besties,
与换行符不匹配。酷,有道理。我还刚刚意识到,我们没有人给过你最简单的方法,我会用它更新。@jmcgriz我们不知道发布字符串的规格。在一般情况下,我们应该考虑所有可能的场景。@ DrimMad更新以包括<代码>分裂<代码>方法,这可能是最干净的方式,谢谢您的回答,它工作得很好!我将接受上面Wiktor的回答,因为他的答案不包含前导空格,我更喜欢使用match/replace而不是exec。尽管如此,还是投票支持这个答案吧@Drummad Besties,
与换行符不匹配。酷,有道理。我还刚刚意识到,我们没有人给过你最简单的方法,我会用它更新。@jmcgriz我们不知道发布字符串的规格。在一般情况下,我们应该考虑所有可能的场景。@ DrimMad更新,包括“代码>拆分<代码>方法,这可能是最干净的方式,谢谢Wikter,一个完美的解决方案。谢谢Wikter,一个完美的解决方案。