1
Я пытаюсь извлечь электронные письма из текста. Я использовал re.search
, который вернул 1. возникновение, но затем я продолжил и использовал re.findall
. К моему удивлению, re.findall
находит меньше писем, чем re.search
. В чем может быть проблема?найти электронные письма в тексте с помощью python и regex
Код:
searchObj = re.search(r'[A-Za-z0-9\._+-][email protected][A-Za-z0-9]+(\.|-)[A-Za-z0-9\.-]+', text)
if searchObj:
mail = searchObj.group()
if mail not in emails:
emails.add(mail)
listEmails = re.findall(r'[A-Za-z0-9\._+-][email protected][A-Za-z0-9]+(\.|-)[A-Za-z0-9\.-]+', text)
for mail in listEmails:
if mail not in emails:
emails.add(mail)
Можете ли вы отрицать группу внутри класса символов. '[^ (\ D +. \ D +)]'? – MYGz
Нет, не так. Решение зависит от того, что вам нужно достичь в конце. Возможно, поможет [умеренный жадный токен] (http://stackoverflow.com/a/37343088/3832970). –