网址的正则表达式过滤器列表

时间:2017-03-20 08:13:47

标签: regex

我需要一些正则表达式的帮助来过滤大量网址,例如:

/page-to-search-for/id/any-string

问题是该列表还包含带子页面的URL,如

/page-to-search-for/id/any-string/registration-form

这些页面需要从结果中排除。

所以,正则表达式需要像:

/page-to-search-for\/(\d+)\/(\w+)(\/?(?!registration-form))

不幸的是,最后一部分没有用。

希望有人可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您似乎想要阻止任何在 any-string 之后,在字符串位置末尾有registration-form的网址。

您可以使用

some-page\/(\d+)\/([^\/]+)(?:\/(?!registration-form$).*)?$

请参阅regex demo

我建议将\w替换为[^\/]+(以匹配除/以外的任何子部分,1 +个字符),(?:\/(?!registration-form$).*)?$将匹配:

  • (?:\/(?!registration-form$).*)?$ - 1或0(可选)序列:
    • \/ - 斜线
    • (?!registration-form$) - 未跟随registration-form和字符串结尾($
    • .* - 任何0+字符
  • $ - 字符串结束。