定期匹配查询字符串
表达我有有日志非常相似,Apache日志定期匹配查询字符串
这里一个日志文件是一个示例日志行
41.13.0.155 - - [03/May/2012:00:00:08 -0700] "GET /gameState?type=udid&udid=A100001837E58D4&game=TapFish HTTP/1.1" 200 38812 - "Dalvik/1.4.0 (Linux; U; Android 2.3.5; GT-B5510 Build/GINGERBREAD)"
我能这个字符串从日志行分开"GET /gameState?type=udid&udid=A100001837E58D4&game=TapFish HTTP/1.1"
我想要遍历所有的行抢所有同时满足下列条件 登录专线应具有"GET /gameState?type=[[anything]]"
但日志行[什么]不应该'neighbor'
请提出了一些正则表达式,可以匹配上述条件
回答:
我不知道我的理解所有的约束,但这应该工作:
.+GET /gameState(?!.*type=neighbor\b).*
你基本上不匹配,如果它gameState
后斑点type=neighbor
任何地方,且仅当neighbor
在单词边界(type=neighborhood
是确定)。
回答:
使用负向前查找字符串排除邻居:
for line in logfile: match = re.search("GET /gameState?type=(?!neighbor)", line")
回答:
可以使用negative lookahead以匹配行不包括子:
.+GET /gameState\?type=(?!neighbor).+
以上是 定期匹配查询字符串 的全部内容, 来源链接: utcz.com/qa/263088.html