我有以下RegExp
^.+\s.+\s(?P<authuser>.+)\s\[.+\]\s"[A-Z]+\s.+ HTTP/\d.\d"\s(?P<status>200|304|204)\s
我应该如何修改它,它匹配除第一组中的 - (但包括 - 的字符串)之外的任何内容?
它应匹配前两行,但不匹配第三行:
37.77.82.109 - steitz [30/Mar/2014:00:22:23 +0100] "GET /eset_upd/update.ver HTTP/1.0" 304 -
37.77.82.109 - steitz-bla [30/Mar/2014:00:22:23 +0100] "GET /eset_upd/update.ver HTTP/1.0" 304 -
37.77.82.109 - - [30/Mar/2014:00:22:23 +0100] "GET /eset_upd/update.ver HTTP/1.0" 304 -
很多。
答案 0 :(得分:0)
看起来负面的解决方案可以解决我的问题。
^.+\s.+\s(?P<authuser>(?!-).+)\s\[.+\]\s"[A-Z]+\s.+ HTTP/\d.\d"\s(?P<status>200|304|204)\s
但是可以肯定的是,这也与-bla不匹配(但问题中没有要求)