Regex 选择带有正则表达式而不是唯一值的行

Regex 选择带有正则表达式而不是唯一值的行,regex,python-3.x,pandas,Regex,Python 3.x,Pandas,大家好,我正在pandas数据框中进行一个非常简单的查找,我需要做的是查找作为regex而不是==myvar键入的输入 到目前为止,这是我得到的,这是非常不完善的,因为在我的数据框架中有很多名称,而不是匹配它们的列表 Name LastName NAME 1 Some Awesome Name 2 Last Names Nam e 3 I can keep going Bane Writing this is awesome BA

大家好,我正在pandas数据框中进行一个非常简单的查找,我需要做的是查找作为regex而不是==myvar键入的输入

到目前为止,这是我得到的,这是非常不完善的,因为在我的数据框架中有很多名称,而不是匹配它们的列表

Name         LastName
NAME 1       Some Awesome
Name 2       Last Names
Nam e 3      I can keep going
Bane         Writing this is awesome
BANE 114     Lets continue
然而,这是我得到的

import pandas as pd
contacts = pd.read_csv("contacts.csv")
print("regex contacts")
nameLookUp = input("Type the name you are looking for: ")
print(nameLookUp)
desiredRegexVar = contacts.loc[contacts['Name'] == nameLookUp]
print(desiredRegexVar)
我必须键入'NAME 1'或'NAME 3'以获得结果,否则我将无法获得任何结果,我尝试使用此功能,但它不起作用

#regexVar = "^" + contacts.filter(regex = nameLookUp)
谢谢你的回答@Code Different

代码如下所示

import pandas as pd
import re
namelookup = input("Type the name you are looking for: ")
pattern = '^' + re.escape(namelookup)
match = contactos['Cliente'].str.contains(pattern, flags=re.IGNORECASE, na=False)
print(contactos[match])
使用。根据需要调整图案:

import re

pattern = '^' + re.escape(namelookup)
match = contacts['Name'].str.contains(pattern, flags=re.IGNORECASE)
contacts[match]

谢谢,这是正确答案代码在我的情况下看起来是这样的,顺便说一句,你能解释一下“导入re”是什么意思吗?祝你过得愉快
re
是Python的正则表达式模块。在这个答案中,我需要
re.escape
功能(以防用户输入一些奇怪的名称,如
^John
——我们需要清理这些名称)和
re.IGNORECASE
(这只是一个int,但比键入一个幻数更好)