【发布时间】:2010-10-20 13:48:47
【问题描述】:
假设你有一些这个字符串(一行)
10.254.254.28 - - [06/Aug/2007:00:12:20 -0700] “获取 /keyser/22300/HTTP/1.0" 302 528 "-" "Mozilla/5.0 (X11; U; Linux i686 (x86_64); zh-CN;房车:1.8.1.4) 壁虎/20070515 火狐/2.0.0.4"
并且您想要提取 GET 和 HTTP 之间的部分(即某个 url),但前提是它包含单词“puzzle”。你会如何在 Python 中使用正则表达式来做到这一点?
到目前为止,这是我的解决方案。
match = re.search(r'GET (.*puzzle.*) HTTP', my_string)
它有效,但我有一些想法,我必须将第一个/第二个/两个 .* 更改为 .*? 以使它们不贪婪。在这种情况下真的重要吗?
【问题讨论】:
-
只希望您的服务器管理员不要更改日志格式:)