2013-11-19 3 views
0

Я использую re и хотел бы найти строку между двумя строками. Моя проблема в том, что строка, которую я хотел бы искать, может заканчиваться либо новой строкой (\ n), либо другой строкой. Так что я хочу сделать, это если это новая строка или другая строка, она должна вернуть мне строку. Причина, по которой я хочу это сделать, - некоторые из моих документов создаются неправильно, так что у нее нет новой строки, поэтому мне нужно получить текст до новой строки, а затем проверить, есть ли у него соответствующая строка.Поиск двух вещей

Я попытался это:

recipients = re.search('Recipients:(.*)\n', body) 
reciBody = re.search('(.*)Notes', recipients.group(1).encode("utf-8")) 

Позже я пытаюсь разделить это с помощью:

recipientsList = reciBody.group(1).encode("utf-8").split(',') 

Проблема в том, я получаю эту ошибку, если нет соответствующей строки:

 recipientsList = reciBody.group(1).encode("utf-8").split(',') 
AttributeError: 'NoneType' object has no attribute 'group' 

Какие еще способы использовать? Или как я могу обработать это сообщение?

ответ

0

Я предполагаю, что ничего не нужно делать, если группа не найдена. Проще всего просто пропустить ошибку.

try: 
    recipientsList = reciBody.group(1).encode("utf-8").split(',') 
except AttributeError: 
    pass # nothing needs to be done 

Вместо pass вам может понадобиться установить recipientsList к чему-то еще

Смежные вопросы