unDucked:
bigger_list_of_names = ['Jim', 'Bob', 'Fred', 'Cam', 'Reagan','Alejandro','Dee','Rana','Denisha','Nicolasa','Annett','Catrina','Louvenia','Emmanuel','Dina','Jasmine','Shirl','Jene','Leona','Lise','Dodie','Kanesha','Carmela','Yuette',]
name_list = ['Jim', 'Bob', 'Fred', 'Cam']
search_people = re.compile(r'\b({})\b'.format(r'|'.join(name_list)), re.IGNORECASE)
print(search_people)
for names in bigger_list_of_names:
found_them = search_people.search(names, re.IGNORECASE | re.X)
print(names)
if found_them:
print('I found this person: {}'.format(found_them.group()))
else:
print('Did not find them')
私が午前問題は、正規表現は、すべての名前を検索し、ヒットし続けていないでelse:
、私が試してみましたre.search
、re.findall
、re.find
、re.match
、re.fullmatch
彼らはすべてのリターンなどNone
。私が使用している場合、それは何かを見つけるための唯一の方法ですre.finditer
が、それは私が使用することはできません.group()
。
出力がre.compile
ありますre.compile('\\b(Jim|Bob|Fred|Cam)\\b', re.IGNORECASE)
私が上でそれをテストしたhttps://regex101.com/()、それはその作業のようではなく、pythonで見えます。
私は何も足りませんか?
newcool:
私は少し遅れが、私は前に同じ問題がありました。(あなたはそれがオフになっていない場合)、あなたはそれが言うオートコンプリートの事を確認した場合、あなたは、pycharmを使用しているように見えます:
pattern.search(self, string, pos, endpos)
代わりにフラグを追加する.search()
部分、あなたはにフラグを追加する必要がありますre.compile
一部。以来re.compile()
、実際にフラグを受け付けます。
それはpycharmの自動補完でどのように見えますか:
re.compile(pattern, flags)
だから、このようなビットになります:
search_people = re.compile(r'\b({})\b'.format(r'|'.join(name_list)), re.IGNORECASE | re.X)
for names in bigger_list_of_names:
found_them = search_people.search(names)
print(names)
if found_them:
print('I found this person: {}'.format(found_them.group()))
else:
print('Did not find them')