正则表达式 - 如果存在字符串,则排除结果

时间:2016-12-01 20:24:01

标签: regex

尝试创建排除子字符串结果的正则表达式。

数据集:

 http://www.cnn.com/test1
 http://www.cnn.com/test3
 http://www.cnn.com/test5
 http://www.stackflow.com/test4
 http://www.cnn.com/test3
 http://www.cnn.com/test4

排除:

  • 查找所有cnn.com网站
  • 没有/ test3

结果:

 http://www.cnn.com/test1
 http://www.cnn.com/test5
 http://www.cnn.com/test4

3 个答案:

答案 0 :(得分:1)

想出来:(www.cnn.com)(?!/test3)

答案 1 :(得分:0)

如果你想避免匹配像http://www.cnn.com/test/test3这样的字符串,那么你可以在字符串末尾使用否定的lookbehind

cnn\.com.*(?<!test3)$

答案 2 :(得分:0)

我猜这会是最快的:

cnn\.com(?!\/test3)[a-zA-Z0-9-._~:?#@!$&'*+,;=`.\/\(\)\[\]]*

因为您只将网址限制为allowed characters