Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有办法在regex中注入输入变量?_Python_Regex - Fatal编程技术网

Python 有没有办法在regex中注入输入变量?

Python 有没有办法在regex中注入输入变量?,python,regex,Python,Regex,编辑:显然,这是正则表达式中的字符串插值。谢谢你的澄清 我有一个名为omj的输入函数 omj 当我运行它时,它会给我 "obik" 然后在这个正则表达式函数中使用该输出 re.findall("\w*obik\w*",dataframe) 我得到的正是我想要的,这就是答案 "Yaobikuni" 请注意,单词中有“obik”,并且只有一个匹配项。有没有一种方法可以将输入omj放入regex函数中,以直接获取Yaobikuni,或者这是唯一可行的方法 编辑:我不明白为什么人们会投反对票,

编辑:显然,这是正则表达式中的字符串插值。谢谢你的澄清

我有一个名为omj的输入函数

omj 
当我运行它时,它会给我

"obik"
然后在这个正则表达式函数中使用该输出

re.findall("\w*obik\w*",dataframe)
我得到的正是我想要的,这就是答案

"Yaobikuni"
请注意,单词中有“obik”,并且只有一个匹配项。有没有一种方法可以将输入omj放入regex函数中,以直接获取Yaobikuni,或者这是唯一可行的方法

编辑:我不明白为什么人们会投反对票,但我想我已经说得很清楚了,omj可以被看作是一个输入字符串,它给出了答案obik

omj = """obik"""
EDIT2:谢谢你的帮助@Nick Chapman。我第一次尝试了这一点,我认为在正则表达式函数中注入输入omj是不可能的:

re.findall("\w*"omj"\w*",dataframe)
你就不能这么做吗

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

第一个参数只是一个字符串,所以您真正的问题是如何在Python中进行字符串插值

这个怎么样:

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

这很令人困惑。你能澄清你的输入/输出/问题吗?什么是
omj
:它是一个函数还是一个输入?@ctwheels:它是一个输入,我在运行它时将obik作为一个输出。因此,如果它是一个输入,而你从中获得
obik
的输出,它就是一个函数?
omj===obik
是如何实现的?@ctwheels:这是一个赋予obik的函数,我将其等同于omj。因此,您可能会得出这样的结论:omj=“”obik”“”,因此可以说
omj
是一个类似于
def omj():print(“obik”)
?如果
omj()
后面没有一对括号,这将导致
TypeError失败:必须是str,而不是function
,我不相信
omj
在这种情况下是一个函数,只是一个字符串。我相信我在第一次编辑中再次澄清了它,但谢谢。这适用于函数。