如何使用正则表达式排除变量字符串的最后一部分

问题描述 投票:1回答:1

我目前正在制作一堆使用类似网址结构的着陆页,但每个网址的字数各不相同。

所以它是这样的:

http://landingpage.xyz/page-number-five
http://landingpage.xyz/page-number-fifty-four
http://landingpage.xyz/page-for-a-different-topic

对于发送的页面,我只是像这样postfix -sent。我没有将它添加为/sent的原因是因为我使用的平台以这种方式处理URL。

http://landingpage.xyz/page-number-five-sent
http://landingpage.xyz/page-number-fifty-four-sent
http://landingpage.xyz/page-for-a-different-topic-sent

现在我发现很容易制作一个标识所有已发送页面的正则表达式,例如:

\/([a-z0-9\-]*)-sent

问题是我不确定如何识别未发送的那些。我尝试使用类似这样的正则表达式,但它没有按预期工作:

\/([a-z0-9\-]*)(?!-sent)

为此设计正则表达式的最佳方法是什么?或者我以错误的方式接近它?

regex url
1个回答
1
投票

如果还有一些字符要匹配,则应考虑前瞻。所以在正则表达式结束时,一个人不会寻找任何东西。只要我不确定您的环境是否支持lookbehinds,这应该是一个解决方法:

\/(?!.*-sent\b)([a-z0-9\-]*)
© www.soinside.com 2019 - 2024. All rights reserved.