定期匹配查询字符串

表达我有有日志非常相似,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

回到顶部