У меня есть список todo.txt, как это, разделенных символами новой строки:Получить текст, окружающий регулярок матч с питоном
(D) 2015-02-18 XDA Ultimate guide to +Tasker @Phone @Computer
2015-02-18 Redesign the business card for +RepairWork @Computer
(A) 2015-02-17 +Study how to +Ask questions @Computer @Phone
(B) 2015-03-25 Update +LaundryTimer W/ new popup design +Tasker
И у меня есть регулярное выражение для захвата + Проекты и @Contexts:
## Projects
project_matches = re.findall('[+]\D\w+',todo_list)
print list(set(project_matches))
## Contexts
context_matches = re.findall('[@][A-Z]\w+',todo_list)
print list(set(context_matches))
Но я также хотел бы быстро и эффективно захватить каждую задачу и группу с помощью + Project или @Context.
Например, здесь есть искомый результат:
Phone:
(A) 2015-02-17 +Study how to +Ask questions @Computer @Phone
(D) 2015-02-18 XDA Ultimate guide to +Tasker @Phone @Computer
Computer:
(D) 2015-02-18 XDA Ultimate guide to +Tasker @Phone @Computer
2015-02-18 Redesign the business card for +RepairWork @Computer
Tasker:
(D) 2015-02-18 XDA Ultimate guide to +Tasker @Phone @Computer
(B) 2015-03-25 Update +LaundryTimer W/ new popup design +Tasker
Etc ...
У меня также есть Regex захватить задачу, когда он находит проект или контекст, но я не знать, если это помогает: (.*)(?=[+]\D\w+)(.*)