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