0

我需要拆分一个字符串:

例子:

str = 'mink.microctr.fit.edu - - [21/Jun/2000:20:21:36 -0400] "GET / HTTP/1.1" 200 1786'

从上面的字符串中我需要提取"21/Jun/2000".

使用:

str.rstrip().split()[3]

输出是"[21/Jun/2000"

关于如何解决这个问题的任何帮助?

4

5 回答 5

2

我会使用正则表达式:

>>> import re
>>> r = 'mink.microctr.fit.edu - - [21/Jun/2000:20:21:36 -0400] "GET / HTTP/1.1" 200 1786'
>>> print re.search(r'\[(.*?):', r).group(1)
21/Jun/2000

也不要命名字符串str,它会覆盖内置类型

于 2013-10-06T23:13:20.267 回答
0

您可以添加[1:]

str.rstrip().split()[3][1:]
于 2013-10-06T23:10:03.143 回答
0
str.split()[3][1:].split(':')[0]
于 2013-10-06T23:10:17.657 回答
0

你必须使用拆分还是你也可以得到一个子字符串?如果格式总是这样,那么试试这个:

str.strip().split()[3][1:]

让我们分解一下:str.strip()去掉所有的空白。然后你split()在任何空白处使用 which splits。这就是你到目前为止所拥有的。现在,str[1:]说“将子字符串从字符串中的第二个字符开始直到字符串的结尾。

于 2013-10-06T23:10:51.003 回答
0

像这样使用正则表达式:

(\d{2}/[A-Za-z]{3}/\d{4})

如果您从未这样做过,请阅读有关在 python 中使用正则表达式的信息。

于 2013-10-06T23:22:34.317 回答