Regex 用于查找不是结束字符的最后关联的正则表达式

Regex 用于查找不是结束字符的最后关联的正则表达式,regex,Regex,我有两个URL,需要从中提取(实际上是在前面拆分)pagename,即last/之后的最后一个文本字符串。例如: https://example.com/en/pagename https://example.com/en/pagename/ 我当前的正则表达式可以找到“/”字符的最后一次引用,但当/位于末尾时,我需要选择上一个/以在pagename之前断开。目前的正则表达式是: \/(?!.*\/) 方法1 我猜 [^/]+/?$ 或者,如果您希望捕获页面名 ([^/]+)/?$ 也许

我有两个URL,需要从中提取(实际上是在前面拆分)pagename,即last/之后的最后一个文本字符串。例如:

https://example.com/en/pagename
https://example.com/en/pagename/
我当前的正则表达式可以找到“/”字符的最后一次引用,但当/位于末尾时,我需要选择上一个/以在pagename之前断开。目前的正则表达式是:

\/(?!.*\/)
方法1 我猜

[^/]+/?$
或者,如果您希望捕获
页面名

([^/]+)/?$
也许可以调查一下


方法2 要选择URL结尾前的正斜杠,我们将尝试正向前瞻:

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

如果您希望简化/修改/探索表达式,将在的右上面板中进行解释。如果您愿意,还可以在中查看它与一些示例输入的匹配情况


方法1 我猜

[^/]+/?$
或者,如果您希望捕获
页面名

([^/]+)/?$
也许可以调查一下


方法2 要选择URL结尾前的正斜杠,我们将尝试正向前瞻:

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

如果您希望简化/修改/探索表达式,将在的右上面板中进行解释。如果您愿意,还可以在中查看它与一些示例输入的匹配情况



它们似乎都捕获了页面名称。如果我只想集中在最后一条斜线上(但不是在末尾),该怎么办?我要求我的分析程序找到斜杠,并将URL的其余部分拆分为一个新字段,因此我只需要选择一个字符(the/)。抱歉,如果不清楚,我想在这两种情况下我都需要在pagename之前选择“/”。谢谢可以,但我不需要零宽度。我只需要用正则表达式选择“/”。只要不是在最后。再次感谢@dgsinclair在这种情况下,您可以从lookback块中取第一个斜杠
/(?=[^/]+(?:/)?$)
,谢谢你们,就这样/(?=[^/]+(?:/)?$)它们似乎都捕获了页面名称。如果我只想集中在最后一条斜线上(但不是在末尾),该怎么办?我要求我的分析程序找到斜杠,并将URL的其余部分拆分为一个新字段,因此我只需要选择一个字符(the/)。抱歉,如果不清楚,我想在这两种情况下我都需要在pagename之前选择“/”。谢谢可以,但我不需要零宽度。我只需要用正则表达式选择“/”。只要不是在最后。再次感谢@dgsinclair在这种情况下,您可以从lookback块中取第一个斜杠
/(?=[^/]+(?:/)?$)
,谢谢你们,就这样/(?=[^/]+(?:/)?$)