2017-12-07 12 views
-3

編集:これは明らかに、これは正規表現の文字列補間です。明確化のためにありがとう。regexの入力変数を注入する方法はありますか?

私はomjという名前の入力関数を持っています。私はそれを実行すると

omj 

、それは私が、私は私がしている、何を望むかEXACTLYを受け

re.findall("\w*obik\w*",dataframe) 

この正規表現関数でその出力を使用して私に

"obik" 

を与えます答え

"Yaobikuni" 

「obik」は単語内にあり、一致するのは1つだけです。 Yaobikuniを簡単に得るために入力omjを正規表現関数に入れる方法はありますか、これが唯一の方法でしょうか?

編集:私は人々がなぜ下降しているのか分かりませんが、omjは答えを与える入力文字列と考えることができます。

omj = """obik""" 

EDIT2は:助け@Nickチャップマンいただきありがとうございます。私が初めてでこれを試してみましたが、私は正規表現関数に入力OMJを注入することが可能になっていないかもしれないと思った。

re.findall("\w*"omj"\w*",dataframe) 
+1

:これはどのように

。入力/出力/質問を明確にすることはできますか? 'omj'とは何ですか?それは関数か入力ですか? – ctwheels

+0

@ctwheels:これは入力です。実行時に出力としてobikを取得します。 –

+0

それが入力で、その出力から 'obik'の出力を得ると、それは関数ですか? 'omj === obik'はどうですか? – ctwheels

答えて

0

は、あなただけの最初の引数がある

re.findall("\w*" + omj + "\w*",dataframe) 
+0

' omj() 'これは' TypeError:関数ではなくstrでなければならない 'と失敗するでしょう。 –

+0

'omj'はこの場合の関数であり、文字列ではないと私は信じています。 –

1

行うことはできませんあなたの本当の疑問は、Pythonで文字列補間を行う方法です。これは非常に混乱して

re.findall("\w*{}\w*".format(omj()), dataframe) 
+0

私は最初の編集でそれをもう一度明らかにしたと思うが、ありがとう。これは関数に対して機能します。 –

関連する問題