2012-04-24 60 views
-3

我想用正則表達式來搜索這個文本文檔,但我也需要用戶在正則表達式中的輸入,我不確定如何做到這一點,並且對於python編程還是很新穎的援助將不勝感激!在正則表達式中使用變量 - Python

import re 

str1=raw_input("Room Number(L1 - L5): ") 
text=open('roombookings.txt', 'r') 

while 1: 
    line = text.readline() 
    if line: 
     re.search(?????) 
    else: 
     break 

text.close() 
+0

請確保您引用用戶輸入,以便正則表達式中的特殊字符不會被誤解... – 2012-04-24 07:24:30

回答

3
  1. 遍歷在一個文件中的行,做

    for line in text: 
    

    你不需要任何的那while 1東西。

  2. 要 「拼接」 變量爲一個字符串的內容,做

    "Your name is {name}.".format(name="John") 
    

    the docs

  3. 要打開和關閉文件,這樣做:

    with open(...) as f: 
    

    ,而不是手工編寫f.close() - 這種處理異常也是如此。還要注意的是,如果你沒有明確地關閉文件,它將在對象被刪除時關閉,當沒有更多的引用時會發生這種情況。

0

如果你的意思是用戶輸入一個普通字符串(本身不是一個正則表達式),你要插入一個正則表達式,使用re.escape字符串編碼。

+0

由於用戶輸入* regex *而不是簡單的文本字符串,因此不會給出所需的結果(如題)。 – 2012-04-24 08:28:01

+0

@TimPietzcker問題不是很清楚,可以是任何方式。 – 2012-04-24 08:37:15