正規表現を使用してファイル内の文字列を置き換えたいと考えています。しかし、私の機能は一致を見つけることができません。だから私は起こっていることを複製するためのテストを嘲笑した。この正規表現がこの文字列で一致しないのはなぜですか?
私は次のように置き換えたい文字列を定義している:私は何か他のもので、 "TYPE = PUZZLE & PREFIX = EXPRESS &" の部分を置き換えたい
string = 'buf = O_strdup("ONE=001&TYPE=PUZZLE&PREFIX=EXPRESS&");'
を。 NB。文字列は必ず元のファイルに "PUZZLE"と "PREFIX"を正確に含むとは限りませんが、その形式になります)。
最初に、私は正しいマッチを得たことをテストしました。
obj = re.search(r'TYPE=([\^&]*)\&PREFIX=([\^&]*)\&', string)
if obj:
print obj.group()
else:
print "No match!!"
([\^&]*)
は、アンパサンドではない任意の数の文字と一致すると考えます。 しかし、私はいつも "No match !!"を得る。しかし
、 obj = re.search(r'TYPE=([\^&]*)', string)
は私を返す "TYPE ="
しないのはなぜ私の最初の1つの作業?
なぜ前にバックスラッシュが入りますか? – abesto
非常に最初の変更は[^&] –