我需要一些正则表达式的帮助来过滤大量网址,例如:
/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))
不幸的是,最后一部分没有用。
希望有人可以帮助我吗?
谢谢!
答案 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+字符$
- 字符串结束。