私のプログラムでは、送信する前に処理する用語をユーザーが入力します。このプロセスの一部として、「and」、「or」、および「not」のすべてのインスタンスを大文字に変更しますが、残りはそのままにします。
string.upper()
すべてを大文字に変更するため、使用できません。またはstring.replace()
、「and」が文字列内の別の単語、たとえば「salamander」にある場合、それも「salamANDer」に変更されます。私の最良の選択肢は正規表現re.sub()
関数だと思います。これにより、完璧な完全な単語を変更できます。次の問題: 行いre.sub()
たい変更ごとに関数を実行する必要があります。1 つのステートメントですべての変更を行うことは可能ですか? 私がやったことは間違っていませんが、必ずしも良い習慣だとは思いません:
>>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