2011-10-02 21 views
1

我目前有一些代碼轉到一個URL,獲取源代碼,並試圖讓它從字符串中返回一個變量。因此,我創建:Python:在字符串中找到一個變量

changetime = refreshsource.find(「變量時NST」)

但因爲這個詞是不變量,它不會找到字符串中的區域,這是別的東西。我將如何從該字符串中檢索不斷變化的VARIABLE?

回答

2

A regular expression將能夠爲你做到這一點。我想給你一些什麼變量的例子,我們可以拿出一個嚴格的表達式。爲了配合你所擁有的上述像下面會做什麼:

import re 
# this will match 01:23, 11:34, 12:00, etc. 
timex = re.compile('.*(\d{2}:\d{2})[ ]?pm NST') 
match = timex.match(text, re.M|re.S) 
variable = match.groups(0) 

編輯:這個代碼將實際工作(不像第一次嘗試:)):

import re 
# this will match 01:23, 11:34, 12:00, etc. 
timex = re.compile('(\d{2}:\d{2})[ ]?pm NST') 

match = timex.search(text) 
if match: 
    variable = match.groups(0) 
+0

謝謝,我不知道正則表達式,我會試試看! –

+0

我覺得可能是在例如一個小bug: '文本= 「\ N10:15pm NST」 #不會match' 我的建議是: '天美= re.compile(R'([0-9] {2}:[0-9] {2})pm NST') timex.search(文本)' – jdi

+0

也可能有時間和下午之間的空間,像'10:15 pm'。正則表達式不處理。 – varunl

1

如果圖案是真的這很簡單,那麼這似乎是一個典型的例子,其中regular expressions非常方便。
注意:如果您是新手使用正則表達式,可能需要使用一些簡介,如http://www.regular-expressions.info。另一方面,如果模式更復雜,那麼您可能需要使用HTML解析器,例如BeautifulSoup

+0

謝謝,這很簡單,所以我會檢查正則表達式。 –

相關問題