Попробуйте это регулярное выражение:
(\d{1,2}\/\d{1,2}.+?(?:(?=\d{1,2}\/\d{1,2} - )|\z))
Проверьте результат здесь http://rubular.com/r/04VL4Qs7Kb
Возвращает эти совпадения:
Match 1
1. 4/28 - Declined
Match 2
1. 4/19 - Call with Bob, Joe and Steve
Match 3
1. 4/10 - Call scheduled for 10a on 4/18
Match 4
1. 4/9 - Wants to meet with Jay on 4/28 at 10:30a
Важные части:
начинается с "даты", а затем с чего-либо еще (обратите внимание на последний ?
, он делает .+
или .*
"не жадными")
\d{1,2}\/\d{1,2}.+?
вплоть доследующая «дата, за которой следует тире» ИЛИ конец строки (это ИЛИ важно, или вы не получите последнее совпадение)
(?=\d{1,2}\/\d{1,2} - )|\z)
, что ?:
существует, чтобы игнорировать группуна результат
(?:(...))
в противном случае вы получите пустую вторую группу на каждый матч
Match 1
1. 4/28 - Declined
2.
Match 2
1. 4/19 - Call with Bob, Joe and Steve
2.
Match 3
1. 4/10 - Call scheduled for 10a on 4/18
2.
Match 4
1. 4/9 - Wants to meet with Jay on 4/28 at 10:30a
2.