Вам нужно найти что-то в строке .Проблема в том, что вы дали re.findall
только один параметр, вы также должны указать line
в качестве параметра.У вас также были некоторые проблемы с вашим регулярным выражением, и вы не закрыли свою группу (то есть ()
), что сделало его недействительным регулярным выражением.
Это ответ, к которому вы стремитесь:
import re
text = open(r'C:\Users\Vincent\Documents\python\theSortingHat\100000DirtyNames.txt') #open text file
for line in text: #iterate through every line
#return list of names in that line
x = re.findall('^([a-zA-Z])-?$', line)
#if an actual name is found
if x != 0:
print(x)
О регулярном выражении, звучит так: сообщение может помочь
TL; DR:
Вы можете использовать это регулярное выражение, возможно:
^[A-Z]'?[- a-zA-Z]+$