有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java正则表达式,用于过滤带有多个关键字的特定URL

我想做的很简单。我想过滤包含特定关键字的特定URL

我现在做的是这样的:

http://.*Examplesite.com/.*(?!Keyword).*

这对我来说很好。但当我想过滤不同的关键字并忽略它们的顺序时,我会尝试以下方法:

http://.*Examplesite.com/.*(?!Keyword1|?!Keyword2|...).*

这对我不管用。也试过只用“?!”使用关键字1。 解决这个问题的正确方法是什么? 我只需要一个简单的正则表达式示例,就像我上面输入的一样

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    每当我需要使用regex here时,我都会使用这个工具

    不清楚你所说的过滤请求是什么意思。您是希望通过简单地匹配模式来删除请求,还是希望从匹配本身捕获值?这将极大地改变正则表达式的复杂性

    我要提醒你,你的最后一行似乎暗示你想要一个更复杂的表达式。虽然仍然是常规的,但它开始包括更复杂的功能,比如回顾比赛的背景,并真正脱离了“简单”的道路

    因为我还不能发表评论,所以我会更新这个答案,以便在回答时包含一个解决方案

    编辑:我不认为正则表达式是你正在寻找的解决方案,尤其是如果这个列表可能变得很大的话。。然而,我认为这可能是一个很好的开始,你在寻找什么

        (?i)((?!dogs)(?!cats)[\.|/|\:|\w])+
    

    这应该只匹配不包含猫或狗的字符串。我强烈建议您使用URL中的路径,因为这也会将其与任何查询参数误报以及域误报隔离开来

    要添加更多术语,或者动态构建,只需添加更多(?!word)块。表达式的其余部分与普通URI字符集匹配,但如果您需要在其中允许其他内容,只需添加另一个条“|”,并包含需要支持的字符

    如果你想更聪明地使用它,我建议你考虑另一种解决方案,因为这已经接近正则表达式的实用极限