Regex 在第三个'/';

Regex 在第三个'/';,regex,match,Regex,Match,我有两种不同形式的字符串: https://anexample.com/things/stuff https://anexample.com/things/stuff 及 https:///things/stuff 我需要一个正则表达式,它将匹配第三个斜杠后字符串中的所有内容,无论语法如何。一旦它到达第三个斜杠,字符串的其余部分就会匹配。我已经找到了很多例子,但我似乎无法调整正确的方法使其发挥作用。提前谢谢。你可以用这个 ^[^/]*/[^/]*/[^/]*/(.*)$ 您可以使用此正则表达式

我有两种不同形式的字符串:

https://anexample.com/things/stuff https://anexample.com/things/stuff 及

https:///things/stuff 我需要一个正则表达式,它将匹配第三个斜杠后字符串中的所有内容,无论语法如何。一旦它到达第三个斜杠,字符串的其余部分就会匹配。我已经找到了很多例子,但我似乎无法调整正确的方法使其发挥作用。提前谢谢。

你可以用这个

^[^/]*/[^/]*/[^/]*/(.*)$

您可以使用此正则表达式:

^(?:[^\/]*\/){3}(.*)$
并使用匹配组#1

在javascript中:

var s = 'https:///things/stuff';
m = s.match(/^(?:[^\/]*\/){3}(.*)$/);
// m[1] => things/stuff

像这样的东西应该可以工作,但是我在写它时没有进行任何测试,但是它应该查找任意字符的三个部分任意次数,后跟斜杠,然后捕捉最后一个部分,直到行尾为止——当然,您可以将分隔符更改为空白或其他任何内容

^.*/{3}(.*$)

假设PCRE,并且字符串中没有换行符:

如果3条斜线可以位于任何位置(如第一个示例):

^[^/]/[^/]*/[^/]*/(.*)$

这也可以表示为:

^(:?[^/]*/){3}(.*)$

使用正向查找,您可以使用以下选项,这些选项应该只匹配您想要的内容,而不是将其放入捕获组中:


(?请发布您的尝试。您使用哪种语言?^(?:[^/]*\/){3}([^/]*)这是我一直在尝试的一个,但我认为我把它复杂化了。小心,开头和结尾的“/”不是正则表达式的一部分,而是相同的分隔符。@griffin:谢谢,为了避免混淆,我删除了regex分隔符。投票结果-你得到了与我相同的解决方案,但我必须重复几次才能达到目的;(+1)对于漂亮的gfx;)@griffin第二个的积分基本上就是我所尝试的,但是当我在gskinner中尝试它时,由于某种原因,它匹配了整个字符串。我使用的线路是:jms://localhost:6000,另一个主机:6000,第三个主机:6000/TD/arandomstring或具有相同的东西,但与jms:///TD/arandomstring  它应该只返回/TD/arandomstring,但出于某些原因,它只匹配整行。当然,您需要使用第一个返回的组,而不是匹配。如果你不想匹配整件事,你可以做积极的回顾。等一下,让我在答案中添加一些内容
^.*/{3}(.*$)