Я хочу разделить строку следующими шаблонами:
date, time - name: message
Сообщение может содержать запятые, дефисы или двоеточия. Как их разделить?
Пример:
03/05/2014, 16:24 - Steven: Thanks, keep you posted :D
Результатов:
grp[0]: 03/05/2014<br/>
grp[1]: 16:24<br/>
grp[2]: Steven<br/>
grp[3]: Thanks, keep you posted :D
Обновлять:
Ответ Эндрю Мортона и Алексея Лебедева работает:
/(.{10}), (.{5}) - (.*?): (.*)/
длина даты и времени фиксирована, а имя и сообщение - нет.
@wingkwong Это хорошо, что вы предоставили нам образцы входных и выходных данных, но, пожалуйста, не могли бы вы отредактировать свой вопрос, включив в него то, что вы пробовали до сих пор, чтобы мы могли помочь вам с этим? Этот сайт на самом деле не сервис написания кода, это скорее сайт исправления кода.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуйте выкройку
(\d{2}/\d{2}/\d{4})\s*,\s*(\d{2}:\d{2})\s*-\s*(.*?):\s*(.*)
Да, работает с полностью совместимым вводом. В обоих наших шаблонах также может быть ведущий символ ^ для принудительного запуска с сопоставлением
@AlexeyLebedev Означает ли это, что на regex101.com есть ошибка: моя жадная версия?
@AndrewMorton да, если вы добавите пробел между : и D в конце, тогда группа 3 будет соответствовать всему до последнего двоеточия: regex101.com/r/l6xlqy/1
Всегда ли строка соответствует шаблону из 10 символов для даты, запятой, пробела, 5 символов для времени, пробела, тире, пробела, имени, двоеточия, пробела, сообщения? Подсказка:
(.{10})соответствует 10 символам.