我试图找到一种更好的方法,使用notepad ++和regex从我的日志文件中提取信息,这样我就可以查看任何有关的内容(寻找500个错误和php尝试等)。
目前我已经得到了以下内容;
^((?!bot.php)|?!(百度)|?!(bingbot)|?!(facebookexternalhit)|?!(+好奇的乔治)|?!(WPAD.DAT))。(PHP $ |。选择 $ |。/ WP $ |。wordpress的 $ | \ S500 \ S $ |。/拒绝* $)
根据我的理解,它应该忽略具有第一个值的行(我想忽略的各种机器人和我不关心的代理尝试) 但是为了它然后匹配其他值(php,wordpress,500错误和urlscan拒绝),但是当它在第二组上匹配时,似乎无法忽略第一组中的值。
(在任何人问我为什么要在服务器日志中查找PHP之前,请注意,我在.net上运行Windows服务器,因此任何.PHP都是来自机器人的标头或黑客尝试查找非 - 现有页面)
答案 0 :(得分:1)
在notepad ++
中试试这个表达式 (?-s)^(?=(?:.(?!baidu|bot\.php))*?$)(?=.*?(?:\.php|select\.|500)).*?$
其中(?!baidu|bot\.php)
包含一个替代黑名单(您要忽略的行)
并且(?:\.php|select\.|500)
包含您要匹配的行的白名单。
它只匹配白名单中匹配的行,但也与黑名单不匹配。
e.g。仅匹配以下4行中的第2行和第4行:
/randomPage.htm randomBrowser 200
/access.php randomBrowser 200
/access.php baidu 200
/randomPage.htm randomBrowser 500