2013-02-02 58 views
1

我有一個小python腳本,通過一堆文件循環,並在每個文件中應用幾個正則表達式。我想添加一個確認步驟,在其中顯示舊文本和新文本。有沒有這樣做的有效方法。現在,在一個字符串中,我做了.search,然後在匹配的文本中輸入.sub,如果用戶確認我在原始字符串中插入新文本(通過索引)。添加確認搜索和替換在Python中使用正則表達式

+2

這將會是真正有用的,如果你能告訴我們你現在正在做和你想要改變你的代碼的例子。 –

回答

4

你可以使用應用re.sub與要求用戶確認回調:
http://docs.python.org/2/library/re.html#text-munging

text = 'This is a dummy dummy text' 

def callback(m): 
    string = m.group() 
    subst = string.upper() 
    start = m.start() 
    question = 'subst {:s} at pos {:d}:'.format(string, start) 
    ans = raw_input(question) 
    if ans[0] in 'Yy': 
     return subst 
    else: 
     return string 

print re.sub(r'\bdummy\b', callback, text) 

其打印

subst dummy at pos 10:n 
subst dummy at pos 16:y 
This is a dummy DUMMY text 
相關問題