2013-10-06 155 views
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"

有關如何解決此問題的任何幫助?

+0

你已經將它輸入到你的文章中的方式,它不會是一個有效的Python字符串。但是,如果您將第一個和最後一個字符替換爲「」,而不是「」字符,那麼它是一個有效的字符串。你知道爲什麼嗎? – Leonardo

+4

不要命名變量'str',它會覆蓋內置的。 – iCodez

+0

如何使用str.split(':')[0] .split('[')[1]'? – bbayles

回答

0

你可以只添加[1:]

str.rstrip().split()[3][1:] 
0

你必須使用拆分或者你也可以得到一個子?如果格式總是看起來像這樣,那就試試這個:

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

讓我們打破這:str.strip()剝掉所有的空白。然後你使用split()分割任何空格。這就是你迄今爲止所做的。現在,str[1:]說:「走子開始在字符串中的第二個字符,直到字符串末尾

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,它將覆蓋內置型

+0

「我會用正則表達式」 - 現在你有兩個問題了!(我小子) – forivall

0

使用正則表達式,像這樣:

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

閱讀這篇關於使用regex with python,如果你有NE ver做到了。

+0

有些解釋會很好 – Johan

+0

@Johan我在Python中添加了一個解釋regex用法的鏈接。如果該人願意簡單地使用google「regex」或「regex python」,那麼解決問題所需的一切都在答案中。 –