4
在我的程序中,用戶在發送之前輸入一個術語。這個過程的一部分是將'和','或'和'不是'的所有實例改爲大寫字母,但其餘部分保持不變。多個re.sub()語句
我不能使用string.upper()
,因爲它將所有內容都改爲大寫;或string.replace()
,因爲如果'和'是該字符串中的另一個詞,例如'蠑螈'它也將改變爲'salamANDer'。我認爲我最好的選擇是正則表達式re.sub()
函數。這使我可以改變完美的單詞。下一個問題:我必須爲我想要做的每個更改做一個re.sub()
函數。是否有可能做出一個聲明來做所有的改變?我所做的是沒有錯的,但我不認爲它一定是很好的做法:
>>import urllib2
>>import re
>>query = 'Lizards and Amphibians not salamander or newt'
>>query=re.sub(r'\bnot\b', 'NOT',query)
>>query=re.sub(r'\bor\b', 'OR',query)
>>query=re.sub(r'\band\b', 'AND',query)
>>query = urllib2.quote("'"+query+"'")
>>print query
%27Lizards%20AND%20Amphibians%20NOT%20salamander%20OR%20newt%27
大斯文謝謝你。更好的編碼實踐! – adohertyd 2012-07-19 16:25:12
+1,非常漂亮的短版。 – 2012-07-19 16:26:07