2017-03-27 17 views
0

私はregexを使って文字列を探しています。私の正規表現は動作しますが、どのように2つを組み合わせますか?私はregexからregexを救うことができるかどうか分からなかった。それは可能ですか?それとも別々にしなければならないのですか?私はfindme = 18d78hafという行を変数に保存して、文字列f1からその行を削除します。少ないコードでこれが可能ですか?Python regex save data

f1.read() 
a = re.compile(r'findme=(.?)*') 
a = a.search(f1).group(0) 
f1 = re.sub(r'findme=(.?)*', '', f1) 
+0

具体的なことができますか?元の文字列と期待される結果を書き留めておく方がよいでしょう。 – Windchill

+0

この構文 '(。?)*'はお勧めできません。より良いものはこの '。*'です。あなたはマッチを保存するためにそれを使うことができます(おそらくそうするべきです)。それから、(_all_?)を置き換えるためにもう一度使用してください。保存するアイテムが1つしかなく、アイテムが1つしかない場合、_and_がコールバックをサポートしていれば、同時に両方を行うことができます。コールバックを返し、 ''''を返すことで何も置き換えません。 – sln

+0

read meファイルには、それを読んだ後に以下が含まれています。 のreadme = "" Fとしてオープン(README)と " " " 何とか何とかのものがここに ここ findme = 123sdfasdf の詳細である": F1 = f.read() = re.compile( r = findme =(。?)* ') a = a.search(f1).group(0)#faves findme = whateverwehave from f1 string。変数aにはf1 = re.sub(r'findme =(。?)*、 ''、f1)#findme = f1文字列からの任意のものを削除します。 コンパイルして文字列を検索し、findme = whatever123を変数aに保存するのではなく、私が望むものです。 これをすべて1行で実行する方法はありますか? – user3525290

答えて

0

正規表現は、あらかじめコンパイルして再利用できます。 hereを参照してください。

import re 
f1="test string" 
regexpattern= re.compile(r'findme=(.?)*') 
regexpattern.sub(f1, '') 
regexpattern.search(f1)