我正在抓取某些网站,但我想放弃基于正则表达式对常见img文件的调用。 regex函数应为
匹配除以.jpg,.png,.gif结尾的URL(字符串)以外的所有内容
示例:
我尝试这样做
.*(?:(?!\.(jpg|png|gif)))$
但没有成功
答案 0 :(得分:0)
您要构建的正确的负面展望是这样
(?!.*\.(?:jpg|png|gif)$)
如果字符串以jpg
或png
或gif
结尾,并且您需要用来拒绝字符串的整体正则表达式是这样,那么它将拒绝该字符串,
^(?!.*\.(?:jpg|png|gif)$).+$
另外,您的正则表达式.*(?:(?!\.(jpg|png|gif)))$
的问题在于,.*
已经贪婪地消耗了所有内容,而前面没有字符,因此您的否定前瞻将始终满足,因为不会在其后留下的任何字符,如果它们的基本面为负数,则可以拒绝您的字符串。因此,您需要将.*
移至否定的外观中,以检查在.jpg
或.png
或.gif